zwei daten vergleichen



  • hi

    ich will von zwei daten im format:

    2008-11-05 18:10:05
    

    jeweils das jüngere zurück haben.
    hab dazu ne riesen if orgel gebaut die funktioniert, bin mir aber fast sicher das es leichter gehen könnte. nur wie?

    sub later {
    	my $first = $_[0];
    	my $secnd = $_[1];
    	my $later = $secnd;
    	if($first =~ /(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})/) {
    		my $year = $1;
    		my $month = $2;
    		my $day = $3;
    		my $hour = $4;
    		my $min = $5;
    		my $sec = $6;
    		if($secnd =~ /(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})/) {
    			if($year>$1) {
    				$later = $first;
    			} elsif($year==$1) {
    				if($month>$2) {
    					$later = $first;
    				} elsif($month==$2) {
    					if($day>$3) {
    						$later = $first;
    					} elsif($day==$3) {
    						if($hour>$4) {
    							$later = $first;
    						} elsif($hour==$4) {
    							if($min>$5) {
    								$later = $first;
    							} elsif($min==$5) {
    								if($sec>$6) {
    									$later = $first;
    								}
    							}
    						}
    					}
    				}
    			}
    		} else { print "no valid date: $secnd\n"; }
    	} else { print "no valid date: $first\n"; }
    	return $later;
    }
    

    ps: das is perl ^^

    danke im voraus 🙂


  • Mod

    was mir ganz spontan einfällt um schonmal die Orgel loszuwerden:

    $gesamtsekunden=$sec+60*$min+3600*$hour+...
    

    Und dann $gesamtsekunden vergleichen. Wenn man mehr darüber anchdenkt kann man das bestimmt auch noch besser machen.



  • lol, ich habs rausgefunden. manchmal sieht man den wald vor lauter baeumen nicht 😃

    if($first gt $secnd)
    

    alphabetisch sortiert 💡

    thanks anyway


Anmelden zum Antworten