En programación Perl , ya que las fechas pueden tener caracteres como espacios, comas o cartas , no se puede tomar simplemente dos fechas y restar uno del otro . Es necesario convertirlos en números puros antes de poder obtener la diferencia entre los dos , y luego devolver ese valor al usuario . Convertir las dos fechas en cuando la época , que es un cálculo del número de segundos que han pasado desde 01 de enero 1970 . Esto le permite restar un valor de fecha de otro para obtener la diferencia. Instrucciones
1
Abra un nuevo archivo de programa Perl. Escriba el siguiente código: .
Tiempo de servicio :: Local;
Este módulo contiene la fecha y hora de las funciones que necesita para calcular los valores de tiempo
2
Escriba el siguiente código :
print " Introduce días (1-31 ) :";
días = $ <>;
print " Introduce meses (1-12 ) : " ;
$ mes = <>;
$ mes = $ mes - 1 ;
print" Introduce años : ";
$ año = <>;
$ año = $ año - 1900 ;
Estas líneas indican al usuario que introduzca un día del mes, mes y año , todo como enteros . Es necesario disminuir el valor de mes por uno ya que la función " timelocal " utiliza valores del mes de cero a 11 , no uno a 12. Además, es necesario restar 1.900 del valor del año para esta función también. Se puede programar un código de comprobación de errores para garantizar que el usuario introduce un valor adecuado , o si desea permitir que el usuario introduzca un nombre de mes , por ejemplo, " enero", programa una función para convertir ese valor a cero.
3
Escriba el siguiente código:
$ tiempo = timelocal ( 0,0,0 , $ dia, $ mes , $ año ) ;
Esto crea una variable llamada $ tiempo que llama a la función timelocal para convertir la fecha entregada por el usuario en tiempo época. Los tres primeros parámetros son todos ceros porque dan cuenta de segundos , minutos y horas . Usted puede solicitar al usuario estos valores , así que si quieres . La función timelocal devuelve un error si la fecha no existe , como 35 de marzo o hasta el 31 de junio , así que asegúrese de que su código comprueba estas posibilidades
4
Escriba el siguiente código: .
$ CURTIME = tiempo ;
$ diff = $ CURTIME - $ tiempo;
la primera línea crea una variable llamada $ CURTIME que utiliza la función de tiempo para devolver la fecha actual en la época tiempo . La segunda línea crea una variable llamada $ diff que obtiene la diferencia de la fecha actual menos la fecha enviado por el usuario . El resultado de número entero es el número de segundos que existen entre las dos fechas . Si el número es positivo , entonces la fecha usuario es anterior a la fecha actual. Si el número es negativo, se produce después de
5
Escriba el siguiente código: .
If ( $ diff > 0 ) {
$ diff = int ( $ diff /60/60 /24) ;
print $ diff. "Los días han pasado desde la fecha en que ingresó. " ;
} Else {
$ diff = abs ( int ( $ diff /60/60 /24) ) ;
< p > imprimir " Hay " . $ diff . "Más días hasta la fecha que ha introducido . ";
}
La función comprueba si es para ver si la fecha enviado por el usuario es antes o después de la fecha actual, sólo para saber que la declaración de imprimir en la pantalla. En ambos casos , el valor $ diff convierte de segundos en días , y luego a un número entero de un flotador ( para evitar la impresión de varios lugares decimales ) . Si el valor es negativo , la función de ABS se obtiene el valor absoluto , esencialmente girando el número negativo en un número positivo . Por ejemplo, " -15 días " se convierte en " 15 días ".
6
Guarde y ejecute el programa de Perl.