Contar años, meses y días access
Tengo la siguiente uda que seguro me podéis resolver.
Para calcular los años,, meses y días que han pasado entre dos fechas utilizdo el siguiente módulo que muy amablemente me paso un experto.
En un cuadro de texto pongo lo siguiente en origen de control
=SiInm(EsNulo([FINCONTRATO]) O Fecha()<=[FINCONTRATO];fncDiferenciaFechas([INICIOCONTRATO];Fecha());
Pues bien, me gustaría que en el caso de que todavía no hubiese llegado la fecha de inicio de contrato o bien no me apareciese nada o bien apareciese un signo de - y el nº de días (- 5 días ). Ahora mismo me parece el 5, es decir, aunque falten 5 días para que comience el contrato y por lo tanto tendría que ser -5 días
Muchas gracias por vuestra ayuda
Una brazo
Dim vMES As Double Dim vDia As Double Dim temp As Date If IsNull(laFechaIni) Or IsNull(laFechaFin) Then fncDiferenciaFechas = "" Exit Function End If If laFechaIni > laFechaFin Then temp = laFechaIni laFechaIni = laFechaFin laFechaFin = temp ElseIf laFechaIni = laFechaFin Then fncDiferenciaFechas = "1 días" Exit Function End If If Month(laFechaIni) > Month(laFechaFin) Then vaño = DateDiff("yyyy", laFechaIni, laFechaFin) - 1 Else vaño = DateDiff("yyyy", laFechaIni, laFechaFin) End If If Day(laFechaIni) > Day(laFechaFin) Then vMES = DateDiff("m", DateAdd("yyyy", vaño, laFechaIni), laFechaFin) - 1 If vMES < 0 Then vMES = 12 + vMES vaño = vaño - 1 End If Else vMES = DateDiff("m", DateAdd("yyyy", vaño, laFechaIni), laFechaFin) End If vDia = DateDiff("d", DateAdd("m", vaño * 12 + vMES, laFechaIni), laFechaFin) + 1 ' Mod 7 If vaño = 1 Then fncDiferenciaFechas = vaño & " año" ElseIf vaño > 1 Then fncDiferenciaFechas = vaño & " años" End If If vMES = 1 Then fncDiferenciaFechas = IIf(fncDiferenciaFechas = "", "", fncDiferenciaFechas & " y ") & vMES & " mes" ElseIf vMES > 1 Then fncDiferenciaFechas = IIf(fncDiferenciaFechas = "", "", fncDiferenciaFechas & " y ") & vMES & " meses" End If If vDia = 1 Then fncDiferenciaFechas = IIf(fncDiferenciaFechas = "", "", fncDiferenciaFechas & " y ") & vDia & " día" ElseIf vDia > 1 Then fncDiferenciaFechas = IIf(fncDiferenciaFechas = "", "", fncDiferenciaFechas & " y ") & vDia & " días" End If End Function
3 Respuestas
Respuesta de Sveinbjorn El Rojo
2
Respuesta de Julián González Cabarcos
2
Respuesta de Eduardo Pérez Fernández
1