In Perl -Programmierung, da Daten wie Leerzeichen , Kommata oder Buchstaben haben kann , können Sie nicht einfach zwei Daten und subtrahieren voneinander . Sie müssen sie auf reine Zahlen zu konvertieren , bevor Sie den Unterschied zwischen den beiden bekommen kann , dann kehren Sie diesen Wert für den Benutzer. Konvertieren Sie die beiden Daten zu Epoche Zeit, die eine Berechnung der Anzahl der Sekunden , die seit dem 1. Januar 1970 bestanden haben. Dies ermöglicht Ihnen, einen Termin Wert vom anderen subtrahieren, um den Unterschied zu bekommen. Anleitung
1
Öffnen Sie ein neues Perl Programmdatei. Geben Sie den folgenden Code: .
Use Time :: Local ;
Dieses Modul enthält Datum und Zeit Funktionen, die Sie brauchen, um Zeit zu berechnen
2
Geben Sie den folgenden Code :
print " Geben Sie Tag (1-31) :";
$ day = <> ;
print " Geben Sie den Monat (1-12) : ";
$ month = <> ;
$ month = $ month - 1;
print" Jahr eingeben : ";
$ year = <> ;
$ year = $ year - 1900 ;
Diese Zeilen den Benutzer auffordern, einen Tag des Monats , Monat und Jahr , die alle als ganze Zahlen eingeben . Sie müssen den Wert von einem Monat verringern , weil die " timelocal " Funktion verwendet Monat Werte von Null bis 11, nicht eins zu 12 . Außerdem müssen Sie bis 1900 aus dem Jahr Wert für diese Funktion als auch subtrahieren . Sie können programmieren etwas Fehlerprüfcode um sicherzustellen, dass die Benutzer einen geeigneten Wert , oder wenn Sie möchten, dass ein Benutzer ein Name des Monats , wie " Januar "-Programm eine Funktion , um diesen Wert auf Null konvertieren geben .
3
Geben Sie den folgenden Code:
$ time = timelocal (0,0,0 , $ tag, $ monat, $ jahr );
Dies schafft ein Variable namens $ Zeit , die die timelocal Funktion aufruft , um den Benutzer übermittelten Datum zu Epoche gleichzeitig konvertieren. Die ersten drei Parameter sind alle Nullen , weil sie für Sekunden, Minuten und Stunden ausmachen. Sie können die Benutzer für diese Werte als auch , wenn Sie fragen. Die timelocal Funktion gibt einen Fehler , wenn ein Datum, das nicht existiert, wie März 35 oder sogar 31. Juni so sicherstellen, dass Ihr Code überprüft, ob diese Möglichkeiten
4
Geben Sie den folgenden Code: .
$ curtime = Zeit ;
$ diff = $ curtime - $ time ;
die erste Zeile erzeugt eine Variable namens $ curtime , die die Zeit -Funktion verwendet , um das aktuelle Datum in der Epoche zurück Zeit . Die zweite Zeile erzeugt eine Variable namens $ diff , die den Unterschied des aktuellen Datums minus der Benutzer übermittelten Datum bekommt . Die integer Ergebnis ist die Anzahl der Sekunden, die zwischen den beiden Daten existieren. Wenn die Zahl positiv ist , wird der Benutzer Datum kommt vor dem aktuellen Datum . Wenn die Zahl negativ ist , kommt es nach
5
Geben Sie den folgenden Code: .
If ( $ diff > 0) {
$ diff = int ( $ diff /60/60 /24) ;
print $ diff . " Tage sind seit dem eingegebenen Datum übergeben . ";
} Else {
$ diff = abs ( int ( $ diff /60/60 /24) );
< p > print " Es gibt " . $ diff . " Tage bis zum eingegebenen Datum . "; }
Die WENN-Funktion prüft, ob der Benutzer übermittelten Zeitpunkt vor oder nach dem aktuellen Datum liegt , nur zu wissen, welche Aussage drucken auf den Bildschirm. In beiden Fällen setzt der $ diff Wert von Sekunden in Tage, und dann auf eine ganze Zahl von einem Schwimmer (zur Vermeidung von Druck mehrerer Dezimalstellen) . Wenn der Wert negativ ist, wird die ABS-Funktion den absoluten Wert , im wesentlichen Drehen des negativen Wert in einen positiven Wert . Zum Beispiel: " 15 Tage " wird " 15 Tage. "
6
Speichern und Ausführen des Perl-Programm .