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 .