Bienvenido a nuestra comunidad, aquí vas a encontrar la respuesta que estabas buscando.
Solución:
La fecha no es un número entero en VB (A), es un doble.
Puede obtener el valor de una fecha pasándolo a CDbl()
.
CDbl(Now()) ' 40877.8052662037
De la documentación:
El sistema de fechas de 1900
En el sistema de fechas 1900, el primer día admitido es el 1 de enero de 1900. Cuando ingresa una fecha, la fecha se convierte en un número de serie que representa el número de días transcurridos que comienzan con 1 para el 1 de enero de 1900. Por ejemplo , si ingresa el 5 de julio de 1998, Excel convierte la fecha al número de serie 35981.
Entonces, en el sistema de 1900, 40877.805...
representa 40 876 días después del 1 de enero de 1900 (29 de noviembre de 2011) y ~ 80,5% de un día (~ 19: 19h). Hay una configuración para el sistema basado en 1904 en Excel, los números estarán desactivados cuando esté en uso (esa es una configuración por libro de trabajo).
Para obtener la parte entera, use
Int(CDbl(Now())) ' 40877
que devolvería un LargoDoble sin lugares decimales (es decir, qué Floor()
haría en otros idiomas).
Utilizando CLng()
o Round()
daría como resultado un redondeo, que devolverá un “día en el futuro” cuando se llame después de las 12:00 del mediodía, así que no hagas eso.
Solo usa CLng(Date)
.
Tenga en cuenta que necesita usar Long
no Integer
para esto, ya que el valor para la fecha actual es> 32767
Recuerda que tienes autorización de agregar una reseña .