Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> Programmazione >> Perl Programming >> .

Come ottenere la differenza di due date in Perl

In programmazione Perl , perché le date possono avere caratteri quali spazi, virgole o lettere , non si può semplicemente prendere due date e sottrarre uno dall'altro . Hai bisogno di convertirli in numeri puri prima di poter ottenere la differenza tra i due, per poi tornare quel valore per l'utente. Converti le due date al momento epoca , che è un calcolo del numero di secondi trascorsi dal 1 Gennaio 1970 . Questo consente di sottrarre un valore di data da l'altro per ottenere la differenza . Istruzioni
1

Aprire un nuovo file di programma Perl . Digitare il seguente codice : .

Uso Time :: Local ;

Questo modulo contiene data e ora funzioni necessarie per calcolare i valori di tempo
2

Digitare il seguente codice :

print " Inserire giorno ( 1-31) : " ;

$ giorno = < > ;

stampa " Enter mese ( 1-12 ) : " ;

$ mese = < > ;

$ mese = $ al mese - 1 ;

print" Inserisci l'anno : " ;

$ anno = < > ;

$ anno = $ anno - 1900 ;

Queste linee richiedono all'utente di immettere un giorno del mese , mese e anno , il tutto come interi . È necessario diminuire il valore di un mese perché la funzione " timelocal " utilizza valori mese da zero a 11 , non uno a 12. Inoltre , è necessario sottrarre 1900 dal valore anno per questa funzione pure. È possibile programmare un codice di controllo degli errori per garantire l' utente immette un valore corretto , o se si desidera consentire a un utente di immettere un nome del mese , ad esempio " gennaio", programma di una funzione per convertire tale valore a zero .


3

Digitare il seguente codice:

$ tempo = timelocal ( 0,0,0 , $ giorno , $ mese , $ anno) ;

Questo crea un variabile denominata $ tempo che chiama la funzione timelocal per convertire la data dall'utente presentato al momento epoca. I primi tre parametri sono tutti zero , perché essi rappresentano secondi, minuti e ore . È possibile richiedere all'utente di questi valori , come pure , se vuoi. La funzione timelocal restituisce un errore se una data non esiste, ad esempio marzo 35 o addirittura 31 giugno , quindi assicuratevi che il codice consente di verificare queste possibilità
4

digitare il seguente codice : .

$ curtime = tempo ;

$ diff = $ curtime - $ tempo ;

la prima riga crea una variabile denominata $ curtime che utilizza la funzione di tempo per restituire la data corrente in epoca tempo . La seconda riga crea una variabile denominata $ diff che ottiene la differenza della data corrente meno la data di inviati dagli utenti . Il risultato intero è il numero di secondi che intercorrono tra le due date . Se il numero è positivo , allora la data all'utente viene prima della data corrente . Se il numero è negativo , esso viene dopo
5

digitare il seguente codice : .

If ( $ diff > 0 ) {

$ diff = int ( $ diff /60/60 /24) ; print

$ diff . " Sono passati giorni dalla data immessa. " ;

} Else {

$ diff = abs ( int ( $ diff /60/60 /24) ) ;

Stampa "Ci sono " . $ diff . " Più giorni fino alla data immessa . ";

}

Se controlli funzione per vedere se la data dall'utente presentato è prima o dopo la data corrente , solo per sapere quale dichiarazione di stampare la schermata . In entrambi i casi , il valore di $ diff converte da secondi in giorni , e poi in un numero intero da un galleggiante (per evitare la stampa di più decimale) . Se il valore è negativo , la funzione abs ottiene il valore assoluto , trasformando sostanzialmente il numero negativo in un numero positivo . Ad esempio, " -15 giorni " diventa " 15 giorni ".
6

Salvare ed eseguire il programma Perl .

 

Programmazione © www.354353.com