Página 1 de 1

Cantidad de días entre dos fechas (Ayuda)

Publicado: 11 Ene 2012, 19:22
por melvinhn
Ante todo busque en el foro
http://www.emesn.com/autoitforum/viewto ... echa#p8424

Quiero saber de que manera saco la cantidad de días entre dos fechas

he utilizado el siguiente scrip pensando en que era asi de facil

Código: Seleccionar todo

#include <Date.au3>
$FechaInicio = "2012/25/02"
$FechaFinal = "2013/28/02"
ConsoleWrite($FechaInicio-$FechaFinal)
ya que en Microsoft Excel si se puede de esa manera
Fechas
Fechas
suma.png (1.42 KiB) Visto 1453 veces

Re: Cantidad de días entre dos fechas (Ayuda)

Publicado: 11 Ene 2012, 20:05
por arkcrew
Bueno, lo que se me ha ocurrido y lo que he encontrado en la ayuda

Ayuda:

Código: Seleccionar todo

#include <Date.au3>

$FechaInicio = "2012/01/02 00:00:00"
$FechaFinal =  "2012/01/10 00:00:00"

Local $iDateCalc = _DateDiff('D', $FechaInicio, $FechaFinal)
MsgBox(4096, "", "Numero de días entre cada fecha: " & $iDateCalc & @lf & "error: "&@error)
Esto al parecer solo funciona entre perdiodos de tiempo pasado (años atras) y la fecha más reciente que soporta es el día actual, si pruebas con 2013 te tira error, al menos a mi si,

Otra cosa que puedes probar, es:

Código: Seleccionar todo

$FechaInicio = "2012/01/02"
$FechaFinal =  "2013/01/10"

$fechaI = StringSplit($FechaInicio,"/")
$anoI = $fechaI[1]
$mesI = $fechaI[2]
$diaI = $fechaI[3]

$fechaF = StringSplit($FechaFinal,"/")
$anoF = $fechaF[1]
$mesF = $fechaF[2]
$diaF = $fechaF[3]

$dif = ($anoF-$anoI) & " años " & ($mesF-$mesI) & " meses y " & ($diaF-$diaI) & " dias"

MsgBox(0,"",$dif)
Esto como ves es más manual y más cutrecillo pero bueno, el caso es que funcionar funciona XD

Saludos!

Re: Cantidad de días entre dos fechas (Ayuda)

Publicado: 11 Ene 2012, 20:32
por melvinhn
Mucha gracias por responder tan pronto

el primer ejemplo me resolvio el problema

el de la ayuda del programa estaba un poco confuso...

gracias

lo deje de la siguiente manera y no me tira error
simplemente si doy una fecha mayor inicial que la final me la cambia a negativo pero eso este bien siempre

Código: Seleccionar todo

#include <Date.au3>

$FechaInicio = "1984/02/12"
$FechaFinal =  _NowCalc()

Local $Diferencia = _DateDiff('D', $FechaInicio, $FechaFinal)
MsgBox(4096, "", "Numero de días entre cada fecha: "&$Diferencia)

Re: Cantidad de días entre dos fechas (Ayuda)

Publicado: 12 Ene 2012, 09:41
por Ximorro
Viendo aquel post efectivamente se veía que se usaba _DateDiff(), al que le puedes decir si quieres la diferencia en días, meses, años, etc...

También funciona con fechas futuras, mira Arckrew cómo la pones que igual has introducido un error al poner el año.
Por cierto, lo de poner 00:00:00 en la fecha es opcional, así que si no manejáis horas lo podéis quitar.

Lo de las fechas negativas es porque pones de fecha final una anterior a la inicial, así que la resta sale negativa, igual que cuando restas números normales.
Yo uso eso en el programa que enlazas al principio, si te fijas cuando la fecha inicial es anterior pone "HAN PASADO..." pero cambia la fecha inicial a algo posterior a la final y verás que el texto cambia a "FALTAN ....", porque son días que faltan para llegar a esa fecha.
Yo lo hago mirando el orden de las fechas, también se podría hacer haciendo la resta directamente y ver el signo.

Si te da igual el signo puedes usar la función matemática ABS(), por ejemplo:
Abs(_DateDiff('D', "2000/01/01", "1999/01/01"))
Abs(_DateDiff('D', "1999/01/01", "2000/01/01"))

dan lo mismo, si no pones Abs() el primero será negativo.