martes, 21 de octubre de 2008

Funciones para calcular fechas en Visual Basic 6.0


Visual basic cuenta con una serie de funciones que nos permiten calcular fechas y horas, por ejemplo generar un intervalo de fechas, sumar y restar fechas y horas y otras operaciones y cálculos

DateAdd : Devuelve un Variant que contiene una fecha que indica el intervalo de tiempo que se ha agregado

DateDiff : Devuelve el número de intervalos de tiempo entre dos fechas determinadas

DatePart : Devuelve una parte específica de una fecha dada

DateSerial : Devuelve un valor Date para un año, mes y día determinados

Ejemplos

El siguiente ejemplo utiliza la función DateDiff para mostrar el itervalo entre dos fechas. El intervalo lo muestra en segundos , minutos, dias, semanas meses y años, como muestra el siguiente gráfico

Colocar en el formulario un Command1.

Option Explicit

' recibe las dos fechas como parámetros
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub Calcular(Fecha_Inicial As Date, _
Fecha_Final As Date)


Const Formato As String = "#,##0"

Me.Cls
Me.Print "Calcular Intervalos entre las fechas " & Fecha_Inicial & _
" hasta :" & Fecha_Final & vbNewLine & String(150, "-") & vbNewLine


Me.Print Format(DateDiff("s", Fecha_Inicial, Fecha_Final), Formato) & " segundos"
Me.Print Format(DateDiff("n", Fecha_Inicial, Fecha_Final), Formato) & " minutos"
Me.Print Format(DateDiff("h", Fecha_Inicial, Fecha_Final), Formato) & " horas"

Me.Print Format(DateDiff("y", Fecha_Inicial, Fecha_Final), Formato) & " dias"
Me.Print Format(DateDiff("WW", Fecha_Inicial, Fecha_Final), Formato) & " semanas"
Me.Print Format(DateDiff("m", Fecha_Inicial, Fecha_Final), Formato) & " meses"
Me.Print Format(DateDiff("yyyy", Fecha_Inicial, Fecha_Final), Formato) & " años"

End Sub

Private Sub Command1_Click()
' le pasa las dos fechas a la función
Call Calcular("01/01/2000", Date)
End Sub

Private Sub Form_Load()

Me.AutoRedraw = True
Command1.Caption = "calcular intervalos "

End Sub


Ejemplo con DateAdd

Lo siguiente, muestra como añadir y restar fechas

' agrega 10 años a la fecha actual
MsgBox DateAdd("yyyy", 10, Date)

' Agrega cinco meses a la fecha actual
MsgBox DateAdd("m", 5, Date)

' resta 1 dias a la fecha actual ( usa el signo -)
MsgBox DateAdd("y", -1, Date)



Nota: para restar, usar el signo negativo, como se usa en el último ejemplo.

Para poder restar y agregar segundos a una hora, usar en el parámetro intervalo la "S", para minutos usar la "n", para horas la "h", para restar y sumar semanas la "ww".

No hay comentarios: