Convertir entre dos fechas años, meses y días
Visual Basic
Publicado el 16 de Enero del 2020 por Jose Francisco
2.410 visualizaciones desde el 16 de Enero del 2020
Se puede calcular entre dos fechas los años los meses y los días....
Function CalcularFechas(FechaInicio As Date, FechaActual As Date) As String
FechaInicio = Format(FechaInicio, "dd/mm/yyyy")
FechaActual = Format(FechaActual, "dd/mm/yyyy")
' aca formatea la fecha sim la hora
Dim DiaActual As Integer
Dim MesActual As Integer
Dim AñoActual As Integer
Dim DiaInicio As Integer
Dim MesInicio As Integer
Dim AñoInicio As Integer
Dim B As Integer
Dim Mes As Integer
Dim Dias As Integer
Dim Años As Integer
Dim Meses As Integer
DiaActual = DatePart("d", FechaActual)
MesActual = DatePart("m", FechaActual)
AñoActual = DatePart("yyyy", FechaActual)
'**************************************'
DiaInicio = DatePart("d", FechaInicio)
MesInicio = DatePart("m", FechaInicio)
AñoInicio = DatePart("yyyy", FechaInicio)
B = 0
Mes = MesInicio - 1
' si el mes es febrero busco si es bisiesto
If (Mes = 2) Then ' *
If ((AñoActual / 4 = 0 And AñoActual / 100! = 0) Or AñoActual / 400 = 0) Then
B = 29
Else
B = 28
End If
ElseIf (Mes <= 7) Then '* ' aca busco los meses si tienen 30 0 31
If (Mes = 0) Then
B = 31
ElseIf (Mes / 2 = 0) Then
B = 30
Else
B = 31
End If
ElseIf (Mes > 7) Then
If (Mes / 2 = 0) Then
B = 31
Else
B = 30
End If
End If
If ((AñoInicio > AñoActual) Or (AñoInicio = AñoActual And MesInicio > MesActual) Or (AñoInicio = AñoActual And MesInicio = MesActual And DiaInicio > DiaActual)) Then
MsgBox "La fecha de inicio tiene que inferior la fecha Actual"
Else
If (MesInicio <= MesActual) Then
Años = AñoActual - AñoInicio
If (DiaInicio <= DiaActual) Then
Meses = MesActual - MesInicio
Dias = DiaActual - DiaInicio
Else
If (MesActual = MesInicio) Then
Años = Años - 1
End If
Meses = (MesActual - MesInicio - 1 + 12) / 12
Dias = B - (DiaInicio - DiaActual)
End If
Else
Años = AñoActual - AñoInicio - 1
If (DiaInicio > DiaActual) Then
Meses = MesActual - MesInicio - 1 + 12
Dias = B - (DiaInicio - DiaActual)
Else
Meses = MesActual - MesInicio + 12
Dias = DiaActual - DiaInicio
End If
End If
End If '*
Dim cAños As String * 3
Dim cMeses As String * 3
Dim cDias As String * 4
cAños = Años
cMeses = Meses
cDias = Dias
'devuelve en la funcion 12 Años - 9 Meses - 15 Dias.
Calcular = cAños & " Años - " & cMeses & " Meses - " & cDias & " Días"
End Function
Comentarios sobre la versión: 2020.01.00 (0)
No hay comentarios