funciones fechas vb
'* Calcula el número de semana del mes, como diferencia entre la semana actual y
'* la del primer día de mes
'*******************************************************************************
Public Function SemanaMes(Optional datFecha As Date)
If datFecha = 0 Then datFecha = Date
SemanaMes = Format(datFecha,"ww", vbMonday) - Format(DateSerial(Year(datFecha), Month(datFecha), 1), "ww", vbMonday) + 1
End Function ' SemanaMes
Volver arriba
'*******************************************************************************
'* convierte un tiempo de formato horario (cadena o fecha) a formato decimal
'* uso: HoraADecimal("01/01/01") devuelve 885408'*******************************************************************************
Function HoraADecimal(vntHoras As Variant) As Long
HoraADecimal = Round(CDbl(CDate(vntHoras)) * 24, 2)
End Function ' HoraADecimal
Volver arriba
'*******************************************************************************
'* convierte tiempo en Minutos a formato hh:mm:00
'* uso: MinutosAhhmm(864) devuelve 14:24:00'*******************************************************************************
Function MinutosAhhmm(intMinutos As Integer) As Date
MinutosAhhmm = intMinutos \ 60 & ":" & format((Abs(intMinutos Mod 60)), "00")
End Function ' MinutosAhhmm
Volver arriba
'*******************************************************************************
'* convierte segundos a formato mm:ss
'* uso: SegundosAmmss(1865) devuelve 31:05'*******************************************************************************
Function SegundosAmmss(lngSegundos As Long)
SegundosAmmss = (CInt(lngSegundos \ 60)) & ":" & format((Abs(CInt(lngSegundos Mod 60))), "00")
End Function ' SegundosAmmss
Volver arriba
'*******************************************************************************
'* convierte segundos a formato hh:mm:ss
'* uso:SegundosAhhmmss(55000) devuelve 15:38:40
'* ESH 01/06/02 20:07
'*******************************************************************************
Function SegundosAhhmmss(lngSegundos As Long) As String
Dim strHoras As String, _
strMinutos As String, _
strSegundos As String
If IsNull(lngSegundos) Then SegundosAhhmmss = "": Exit Function
strHoras = format(lngSegundos \ 3600, "00")strMinutos = format(((lngSegundos - (CLng(strHoras) * 3600)) \ 60), "00")
strSegundos = format(Abs(lngSegundos Mod 60), "00")
SegundosAhhmmss = strHoras & ":" & strMinutos & ":" & strSegundos
End Function ' SegundosAhhmmss
Volver arriba
'*******************************************************************************
'* convierte una cadena con formato hora a minutos
'* uso: hhmmAMinutos("12:01")devuelve 721
'*******************************************************************************
Function hhmmAMinutos(strHoras) As Long
hhmmAMinutos = CLng(CDbl(CDate(strHoras)) * 24 * 60)
End Function ' hhmmAMinutos
Volver arriba
'*******************************************************************************
'* convierte una cadena con formato hora a segundos
'* uso:hhmmASegundos("12:01") devuelve 43260
'*******************************************************************************
Function hhmmASegundos(vntHoras) As Long
hhmmASegundos = CLng(CDbl(CDate(vntHoras)) * 24 * 60 * 60)
End Function ' hhmmASegundos
Volver arriba
'*******************************************************************************
'* como obtener distintas fechas en relación a la pasada comoargumento
'*******************************************************************************
' Devuelve el primer día del año de la fecha pasada por argumento y en su defecto del actual
Public Function PrimerDiaAño(Optional datFecha As Date) As Date
If datFecha = "0:00:00" Then datFecha = Date
PrimerDiaAño = DateSerial(CInt(Year(datFecha)), 1, 1)
End Function ' PrimerDiaAño
Volver arriba
'...
Regístrate para leer el documento completo.