February 27
Nella programmazione Perl, perché le date possono avere personaggi come spazi, virgole o lettere, non si può semplicemente prendere due date e sottrarre l'uno dall'altro. È necessario convertirli in numeri puri prima di poter ottenere la differenza tra i due; ripristinare tale valore per l'utente. Convertire le due date in tanto epoca, che è un calcolo del numero di secondi che sono passati dal 1 gennaio 1970. Ciò consente di sottrarre un valore di data dall'altro per ottenere la differenza.
1 Aprire un nuovo file di programma Perl. Digitare il seguente codice:
utilizzare Time :: locale;
Questo modulo contiene funzioni di data e ora è necessario per calcolare i valori di tempo.
2 Digitare il seguente codice:
stampare "Inserire giorno (1-31):";
$ Al giorno = <>;
stampare "Enter mese (1-12):";
$ Mese = <>;
$ Mese = $ al mese - 1;
stampare "Enter anno:";
$ Anno = <>;
$ Anno = $ anno - 1900;
Queste linee richiedono all'utente di inserire un giorno del mese, mese e anno, tutti come numeri interi. È necessario diminuire il valore del mese da uno perché la funzione "timelocal" utilizza i 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 il controllo degli errori al fine di garantire l'utente immette un valore adeguato, o se si desidera consentire a un utente di immettere un nome del mese, come il programma "gennaio", una funzione per convertire tale valore a zero.
3 Digitare il seguente codice:
$ Time = timelocal (0,0,0, $ al giorno, $ al mese, $ l'anno);
Questo crea una variabile denominata $ tempo che chiama la funzione timelocal per convertire la data dall'utente presentato al epoch tempo. I primi tre parametri sono tutti zeri, perché essi rappresentano secondi, minuti e ore. È possibile richiedere all'utente di questi valori, come pure se si vuole. La funzione timelocal restituisce un errore se una data non esiste, come ad esempio marzo 35 o addirittura 31 giugno, in modo da assicurarsi che il proprio codice controlla 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 tempo epoca. La seconda riga crea una variabile denominata $ diff che ottiene la differenza della data corrente meno la data di inviati dall'utente. 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, viene dopo.
5 Digitare il seguente codice:
if ($ diff> 0) {
$diff = int($diff / 60 / 60 / 24);
print $ diff. "Giorni sono passati da quando la data immessa.";
} altro {
$diff = abs(int($diff / 60 / 60 / 24));
print "Ci sono". $ Diff. "Più giorni, fino alla data in cui sono entrati.";
}
Il se i controlli funzione per vedere se la data dall'utente presentato è prima o dopo la data corrente, solo per sapere quale dichiarazione di stampare sullo schermo. In entrambi i casi, il valore $ 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, essenzialmente trasformando il numero negativo in un numero positivo. Ad esempio, "-15 giorni" diventa "15 giorni".
6 Salvare ed eseguire il programma Perl.