Thread Datum korrekt und nicht in der Vergangenheit? (2 answers)
Opened by Gast at 2009-02-15 22:36

Gast Gast
 2009-02-20 20:05
#119050 #119050
Hallo,

recht vielen Dank für Deine Antwort.

Da ich ein absoluter Neuling bin verstehe ich nicht ganz genau, wie und wo ich den entsprechenden Code einfügen muss.

Zunächst muss ich die auszuwertenden Felder benennen. Da in meinem Fall 2 verschiedene Datumsangaben ausgewertet werden müssen (Ankunftsdatum und Abfahrtsdatum) und ein drittes Datum hinzugefügt werden muss (Serverdatum) habe ich schon mal 3 verschiedene Auswertungen vorzunehmen:

Ich würde es wie folgt machen:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
$day1 = $INPUT{antag}; 
$month1 = $INPUT{anmonat}; 
$year1 = $INPUT{anjahr}; 
 
$day2 = $INPUT{abtag}; 
$month2 = $INPUT{abmonat}; 
$year2 = $INPUT{abjahr}; 
 
($year,$month,$day) = System_Clock();




Anschliesend muss ich das check-date anwenden

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
use Date::Calc qw( check_date ); 
 
if ( check_date( $year1, $month1, $day1 )  
{  
        print "Location: $msg_ok\n\n"; 
        exit; 
} 
 else  
{ 
        print "Location: $msg_badmail\n\n"; 
        exit; 
} 
 
if ( check_date( $year2, $month2, $day2 )  
{  
        print "Location: $msg_ok\n\n"; 
        exit; 
} 
 else  
{ 
        print "Location: $msg_badmail\n\n"; 
        exit; 
} 


und jetzt muss ich die drei Datumsangaben miteinander vergleichen (das Serverdaum kann kleiner oder gleich dem Ankunftsdatum sein und das Abfahrtsdatum muss größer als das Ankunftsdatum sein):

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
use Date::Calc qw( Date_to_Days ); 
 
if (Date_to_Days($year3,$month3,$day3)  <= 
    Date_to_Days($year1,$month1,$day1)) 
{  
        print "Location: $msg_ok\n\n"; 
        exit; 
} 
 else  
{ 
        print "Location: $msg_badmail\n\n"; 
        exit; 
} 
 
if (Date_to_Days($year1,$month1,$day1)  < 
    Date_to_Days($year2,$month2,$day2)) 
{  
        print "Location: $msg_ok\n\n"; 
        exit; 
} 
 else  
{ 
        print "Location: $msg_badmail\n\n"; 
        exit; 
} 


So hatte ich es jedenfalls gedacht, aber aus irgendeinem Grund funktioniert es nicht.

Kannst Du mir sagen, wo der/die Fehler sind?

Gruß Ulli

View full thread Datum korrekt und nicht in der Vergangenheit?