fuzzyClock.php3


Deprecated: Function split() is deprecated in /usr/pages/www.home.unix-ag.org.user/tjabo/fuzzyClock/fuzzyClock.php3 on line 5
Es ist gleich fünf vor halb zwei.

Diese Klasse gibt auf Kommando die aktuelle Zeit etwa so aus, wie man sie als Mensch sagt. z.B.:

So verwendet man die Klasse:

  <?
  require("fuzzyClock.php3");
  $clock = new fuzzyClock;
  print "<i>" . $clock->tellTheTime() . "</i>\n";                                                                  
  ?>

Source:

<?
class fuzzyClock {

  function 
tellTheTime() {
    
$time split(":"strftime("%H:%M") );
    
    
$hour $time[0];
    
$min  $time[1];

    
# print "hour = $hour, min = $min<br>, "  . strftime("%H:%m")  . "\n";
    
    
$nexthour $hour == 23 $hour 1;
    
    
$arr = Array("Mitternacht","eins","zwei","drei""vier""fünf""sechs""sieben""acht""neun""zehn""elf""zwölf");
    
    
$nexthour = ($nexthour 13) ? $arr[$nexthour] : $arr[$nexthour 12];
    
$hour     = ($hour     13) ? $arr[$hour]     : $arr[$hour 12];

    if ((
$min ==  0)                 ) { return "Es ist $hour Uhr.\n"; }
    if ((
$min >   0) and ($min <=  2)) { return "Es ist kurz nach $hour.\n"; }
    if ((
$min >   2) and ($min <=  4)) { return "Es ist gleich fünf nach $hour.\n"; }

    if ((
$min ==  5)                 ) { return "Es ist fünf nach $hour.\n"; }
    if ((
$min >   5) and ($min <=  7)) { return "Es war eben fünf nach $hour.\n"; }
    if ((
$min >   7) and ($min <=  9)) { return "Es ist gleich zehn nach $hour.\n"; }

    if ((
$min == 10)                 ) { return "Es ist zehn nach $hour.\n"; }
    if ((
$min >  10) and ($min <= 12)) { return "Es war eben zehn nach $hour.\n"; }
    if ((
$min >  12) and ($min <= 14)) { return "Es ist gleich viertel nach $hour.\n"; }

    if ((
$min == 15)                 ) { return "Es ist viertel nach $hour.\n"; }
    if ((
$min >  15) and ($min <= 17)) { return "Es war eben viertel nach $hour.\n"; }
    if ((
$min >  17) and ($min <= 19)) { return "Es ist gleich zwanzig nach $hour.\n"; }

    if ((
$min == 20)                 ) { return "Es ist zwanzig nach $hour.\n"; }
    if ((
$min >  20) and ($min <= 22)) { return "Es war eben zwanzig nach $hour.\n"; }
    if ((
$min >  22) and ($min <= 24)) { return "Es ist gleich fünf vor halb $nexthour.\n"; }

    if ((
$min == 25)                 ) { return "Es ist fünf vor halb $nexthour.\n"; }
    if ((
$min >  25) and ($min <= 29)) { return "Es ist kurz vor halb $nexthour.\n"; }

    if ((
$min == 30)                 ) { return "Es ist halb $nexthour.\n"; }
    if ((
$min >  30) and ($min <= 33)) { return "Es ist kurz nach halb $nexthour.\n"; }
    if ((
$min >  33) and ($min <= 34)) { return "Es ist gleich fünf nach halb $nexthour.\n"; }

    if ((
$min == 35)                 ) { return "Es ist fünf nach halb $nexthour.\n"; }
    if ((
$min >  35) and ($min <= 36)) { return "Es war eben fünf nach halb $nexthour.\n"; }
    if ((
$min >  36) and ($min <= 39)) { return "Es ist gleich zwanzig vor $nexthour.\n"; }


    if ((
$min == 40)                 ) { return "Es ist zwanzig vor $nexthour.\n"; }
    if ((
$min >  40) and ($min <= 42)) { return "Es war eben zwanzig vor $nexthour.\n"; }
    if ((
$min >  42) and ($min <= 44)) { return "Es ist gleich viertel vor $nexthour.\n"; }

    if ((
$min == 45)                 ) { return "Es ist viertel vor $nexthour.\n"; }
    if ((
$min >  45) and ($min <= 46)) { return "Es war eben viertel vor $nexthour.\n"; }
    if ((
$min >  46) and ($min <= 49)) { return "Es ist gleich zehn vor $nexthour.\n"; }


    if ((
$min == 50)                 ) { return "Es ist zehn vor $nexthour.\n"; }
    if ((
$min >  50) and ($min <= 52)) { return "Es war eben zehn vor $nexthour.\n"; }
    if ((
$min >  52) and ($min <= 54)) { return "Es ist gleich fünf vor $nexthour.\n"; }

    if ((
$min == 55)                 ) { return "Es ist fünf vor $nexthour.\n"; }
    if ((
$min >  55) and ($min <= 56)) { return "Es war eben fünf vor $nexthour.\n"; }
    if ((
$min >  56) and ($min <= 59)) { return "Es ist kurz vor $nexthour.\n"; }
  }
}
?>