“Conocimientos Programación>Perl Programming

Cómo obtener la diferencia de dos fechas en Perl

2011/7/2
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.

Perl Programming
Cómo quitar líneas en blanco de un archivo en Perl
Cómo limpiar el inicio y fin de una cadena en Perl
Cómo utilizar la función de impresión en Perl
Cómo utilizar una función Grep Perl
Como prueba para ver si existe un archivo en Perl
Cómo conseguir un tamaño de matriz en Perl
Cómo utilizar Awk en Perl
Perl script Tutorial Archivo
Conocimientos Informáticos © http://www.ordenador.online