break; case 2: if ($eingabeTag > schaltjahrFeb($eingabeJah)) { $valid = false; } break; } } // Datum berechnen if ($valid) { if ($richtung == 1) { $ergebnis = rlSy($eingabeTag, $eingabeMon, $eingabeJah, $eingabeStu, $eingabeMin); $ausgansRichtung = "RL-Zeit"; $zielRichtung = "SY-Zeit"; } elseif ($richtung == 2) { $ergebnis = syRl($eingabeTag, $eingabeMon, $eingabeJah, $eingabeStu, $eingabeMin); $ausgansRichtung = "SY-Zeit"; $zielRichtung = "RL-Zeit"; } } else { $ergebnis = "Ungültige Eingaben"; } // Ausgabe formatieren if ($ergebnis == "Ungültige Eingaben") { $eingabe = "Ungültige Eingaben."; $ausgabe = "Berechnung konnte nicht durchgeführt werden."; } else { if ($eingabeMin < 10) { $eingabeMin = "0" . $eingabeMin; } $eingabe = $eingabeTag . "." . $eingabeMon . "." . $eingabeJah . " " . $eingabeStu . ":" . $eingabeMin . " Uhr " . $ausgansRichtung;
function wfDRechnerRender($input, array $args, Parser $parser, PPFrame $frame) { $valid = false; // Wenn kein Datum angegeben if ($input == null) { date_default_timezone_set('Europe/Berlin'); $timestampJetzt = time(); $eingabeJah = date('Y', $timestampJetzt); $eingabeMon = date('m', $timestampJetzt); $eingabeTag = date('d', $timestampJetzt); $eingabeStu = date('G', $timestampJetzt); $eingabeMin = date('i', $timestampJetzt); $richtung = 1; $valid = true; } else { /*// Eingabeformat prüfen $pattern1 = /^2[0-9]{3}[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])$/; $pattern2 = /^2[0-9]{3}[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])[ ]([01][0-9]|2[0-3])[:]([0-5][0-9])$/; if(preg_match($pattern1, $input)) $valid = true; elseif(preg_match($pattern2, $input)) $valid = true; else $valid = false;*/ // Eingaben auslesen if ($args['dir'] == 'rl') { $richtung = 2; } else { $richtung = 1; } $inputDate = DateTime::createFromFormat('Y-m-d G:i', $input); if ($inputDate != false) { $eingabeJah = $inputDate->format('Y'); $eingabeMon = $inputDate->format('m'); $eingabeTag = $inputDate->format('d'); $eingabeStu = $inputDate->format('G'); $eingabeMin = $inputDate->format('i'); $valid = true; } else { $inputDate = DateTime::createFromFormat('Y-m-d', $input); if ($inputDate != false) { $eingabeJah = $inputDate->format('Y'); $eingabeMon = $inputDate->format('m'); $eingabeTag = $inputDate->format('d'); $eingabeStu = 12; $eingabeMin = 00; $valid = true; } else { $valid = false; } } } // Eingaben prüfen if ($richtung != 1 && $richtung != 2) { $valid = false; } // Berechnungsrichtung if ($valid) { if ($richtung == 1) { if ($eingabeJah < 2008) { $valid = false; } if ($eingabeJah == 2008 && $eingabeMon < 10) { $is08 = true; } } elseif ($richtung == 2) { if ($eingabeJah < 1930) { $valid = false; } if ($eingabeJah < 2030) { $is08 = true; } } else { $valid = false; } } /*if($valid) // Tagesangabe { switch ($eingabeMon) { case 4: case 6: case 9: case 11: if($eingabeTag > 30) $valid = false; break; case 2: if($eingabeTag > schaltjahrFeb($eingabeJah)) $valid = false; break; } }*/ // Datum berechnen if ($valid) { if ($richtung == 1) { if ($is2008) { } else { $ergebnis = rlSy($eingabeTag, $eingabeMon, $eingabeJah, $eingabeStu, $eingabeMin); } $ausgansRichtung = 'RL'; $zielRichtung = 'SY'; } elseif ($richtung == 2) { if ($is2008) { } else { $ergebnis = syRl($eingabeTag, $eingabeMon, $eingabeJah, $eingabeStu, $eingabeMin); } $ausgansRichtung = 'SY'; $zielRichtung = 'RL'; } } else { $ergebnis = null; } // Ausgabe formatieren if ($ergebnis == null) { $eingabe = 'Ungültige Eingaben.'; $ausgabe = 'Berechnung konnte nicht durchgeführt werden.'; } else { if ($eingabeMin < 10) { $eingabeMin = "0" . $eingabeMin; } $eingabe = $eingabeTag . '.' . $eingabeMon . '.' . $eingabeJah . ' ' . $eingabeStu . ':' . $eingabeMin . ' ' . $ausgansRichtung; $ausgabe = $ergebnis[0] . '.' . $ergebnis[1] . '.' . $ergebnis[2] . ' ' . $ergebnis[3] . ':' . $ergebnis[4] . ' ' . $zielRichtung; } if ($args['eing'] == 'j') { $output = '<abbr title="' . $eingabe . '">' . $ausgabe . '</abbr>'; } else { $output = $ausgabe; } return $output; }
function wfDRechnerRender($input, array $args, Parser $parser, PPFrame $frame) { $valid = false; // Wenn kein Datum angegeben if (!isset($input) || trim($input) === '') { date_default_timezone_set('Europe/Berlin'); $timestampJetzt = time(); $eingabeJah = date('Y', $timestampJetzt); $eingabeMon = date('n', $timestampJetzt); $eingabeTag = date('j', $timestampJetzt); $eingabeStu = date('G', $timestampJetzt); $eingabeMin = date('i', $timestampJetzt); $richtung = 1; $valid = true; } else { // Eingaben auslesen if ($args['dir'] == 'rl') { $richtung = 2; } else { $richtung = 1; } $inputDate = DateTime::createFromFormat('Y-m-d H:i', $input); if ($inputDate != false) { $eingabeJah = $inputDate->format('Y'); $eingabeMon = $inputDate->format('n'); $eingabeTag = $inputDate->format('j'); $eingabeStu = $inputDate->format('G'); $eingabeMin = $inputDate->format('i'); $valid = true; } else { $inputDate = DateTime::createFromFormat('Y-m-d', $input); if ($inputDate != false) { $eingabeJah = $inputDate->format('Y'); $eingabeMon = $inputDate->format('n'); $eingabeTag = $inputDate->format('j'); $eingabeStu = 12; $eingabeMin = 00; $valid = true; } else { $inputDate = DateTime::createFromFormat('d.m.Y', $input); if ($inputDate != false) { $eingabeJah = $inputDate->format('Y'); $eingabeMon = $inputDate->format('n'); $eingabeTag = $inputDate->format('j'); $eingabeStu = 12; $eingabeMin = 00; $valid = true; } else { $valid = false; } } } } // Eingaben prüfen if ($richtung != 1 && $richtung != 2) { $valid = false; } // Berechnungsrichtung if ($valid) { if ($richtung == 1) { if ($eingabeJah < 2008) { $valid = false; } if ($eingabeJah == 2008 && $eingabeMon < 10) { $valid = false; } } elseif ($richtung == 2) { if ($eingabeJah < 2020) { $valid = false; } } else { $valid = false; } } /*if($valid) // Tagesangabe { switch ($eingabeMon) { case 4: case 6: case 9: case 11: if($eingabeTag > 30) $valid = false; break; case 2: if($eingabeTag > schaltjahrFeb($eingabeJah)) $valid = false; break; } }*/ // Datum berechnen if ($valid) { if ($richtung == 1) { $ergebnis = rlSy($eingabeTag, $eingabeMon, $eingabeJah, $eingabeStu, $eingabeMin); $ausgansRichtung = 'RL'; $zielRichtung = 'SY'; } elseif ($richtung == 2) { $ergebnis = syRl($eingabeTag, $eingabeMon, $eingabeJah, $eingabeStu, $eingabeMin); $ausgansRichtung = 'SY'; $zielRichtung = 'RL'; } } else { $ergebnis = null; } // Ausgabe formatieren if ($ergebnis == null) { $eingabe = 'Ungültige Eingaben.'; $ausgabe = 'Berechnung konnte nicht durchgeführt werden.'; } else { if (strlen($eingabeMin) < 2) { $eingabeMin = '0' . $eingabeMin; } if (strlen($ergebnis[4]) < 2) { $ergebnis[4] = '0' . $ergebnis[4]; } $eingabe = $eingabeTag . '.' . $eingabeMon . '.' . $eingabeJah . ' ' . $eingabeStu . ':' . $eingabeMin . ' ' . $ausgansRichtung; $ausgabe = $ergebnis[0] . '.' . $ergebnis[1] . '.' . $ergebnis[2] . ' '; if ($args['day'] != 'j') { $ausgabe = $ausgabe . $ergebnis[3] . ':' . $ergebnis[4] . ' '; } $ausgabe = $ausgabe . $zielRichtung; } if ($args['eing'] == 'j') { $output = '<abbr title="' . $eingabe . '">' . $ausgabe . '</abbr>'; } else { $output = $ausgabe; } return $output; }