Quiq::Time - Klasse zur Repräsentation von Datum und Uhrzeit
Quiq::Object
Ein Objekt der Klasse Quiq::Time repräsentiert eine Zeitangabe, bestehend aus den Komponenten Jahr (Y), Monat (M), Tag (D), Stunde (h), Minute (m) und Sekunde (s). Die Klasse stellt Methoden zur Manipulation der Zeitangabe zur Verfügung.
Die Zeitangabe ist keiner bestimmten Zeitzone zugeordnet, alle Tage haben 24 Stunden (keine Sommerzeit- und Winterzeit-Umschaltung) und alle Tage haben genau 86400 Sekunden (keine Schaltsekunden).
$ti = $class->new($year,$month,$day,$hour,$minute,$second); $ti = $class->new($year,$month,$day,$hour,$minute); $ti = $class->new($year,$month,$day,$hour); $ti = $class->new($year,$month,$day); $ti = $class->new($year,$month); $ti = $class->new($year); $ti = $class->new(local=>$epoch); $ti = $class->new(utc=>$epoch); $ti = $class->new(dmy=>'D M Y'); $ti = $class->new(dmyhms=>'D M Y H M S'); $ti = $class->new(ymd=>'Y M D'); $ti = $class->new(ymdhm=>'Y M D'); $ti = $class->new(ymdhms=>'Y M D H M S'); $ti = $class->new(parse=>'D.M.Y ...'|'M/D/Y ...'|'Y-M-D ...'); $ti = $class->new;
Instantiiere Zeitobjekt, setze die Zeitkomponenten auf die angegebenen Werte und liefere das Objekt zurück.
Aufrufargumente siehe $ti->set().
$ti2 = $ti->copy;
Kopiere Zeitobjekt und liefere die Kopie zurück.
($year,$month,$day,$hour,$minute,$second) = $ti->asArray;
$ti = $class->set($year,$month,$day,$hour,$minute,$second); $ti = $class->set($year,$month,$day,$hour,$minute); $ti = $class->set($year,$month,$day,$hour); $ti = $class->set($year,$month,$day); $ti = $class->set($year,$month); $ti = $class->set($year); $ti = $class->set(local=>$epoch); $ti = $class->set(utc=>$epoch); $ti = $class->set(dmy=>'D M Y'); $ti = $class->set(dmyhm=>'D M Y H M'); $ti = $class->set(dmyhms=>'D M Y H M S'); $ti = $class->set(ymd=>'Y M D'); $ti = $class->set(ymdhm=>'Y M D'); $ti = $class->set(ymdhms=>'Y M D H M S'); $ti = $class->set(parse=>'D.M.Y ...'|'M/D/Y ...'|'Y-M-D ...'); $ti = $class->set;
Setze die Zeit gemäß der angegebenen Zeitkomponenten und liefere das Zeitobjekt zurück.
Alle nicht angegebenen Komponenten werden auf ihren kleinsten Wert initialisiert (1 bei bei Monat und Tag, 0 bei Stunde, Minute, Sekunde).
Ein Aufruf ohne Argument setzt das Objekt auf den Beginn der Epoche (1.1.1970 0 Uhr).
Bei den Formaten dmy, dmyhms, ... sind beliebige Trennzeichen zwischen den einzelnen Zahlen erlaubt.
$ti = $ti->setTime($hour,$minute,$second);
Setze die Zeit auf die angegebenen Stunden, Minuten, Sekunden und liefere das Zeitobjekt zurück. Wird für eine Zeitkomponente Cltundef> angegeben, wird diese nicht gesetzt.
$ti = $ti->truncate($unit);
Kürze Zeit auf Jahr (Y), Monat (M), Tag (D), Stunde (h) oder Minute (m), d.h. setze alle kleineren Zeitkomponenten auf ihren kleinsten Wert und liefere das Zeitobjekt zurück.
$ti = Quiq::Time->new(2005,12,28,22,56,37); $ti->truncate('D'); ==> 2005-12-28-00-00-00
$year = $ti->year;
$month = $ti->month;
Liefere die Nummer des Monats. Wertebereich: 1-12.
$day = $ti->day;
$str = $ti->dayAbbr;
Liefere abgekürzten Wochentagsnamen (Mo, Di, Mi, Do, Fr, Sa, So).
$n = $ti->dayName;
Liefere Wochentagsname (Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag).
$str = $ti->monthName;
Liefere Monatsnamen (Januar, Februar, ..., Dezember).
$n = $ti->dayOfWeek;
Liefere Wochentagsnummer im Bereich 1-7, 1 = Montag.
$n = $ti->daysOfMonth;
Liefere die Anzahl der Tage des Monats, also 31 für Januar, 28 oder 29 für Februar usw.
$n = $ti->dayOfYear;
Liefere die Tagesnummer innerhalb des Jahres.
($year,$n) = $ti->weekOfYear;
Liefere die Kalenderwoche, bestehend aus Jahr und Wochennummer gemäß DIN 1355.
$epoch = $ti->epoch('local'); $epoch = $ti->epoch('utc'); $epoch = $ti->epoch;
Liefere Epoch-Zeit. Ein Aufruf ohne Argument ist äquivalent zu $ti->epoch('utc').
$bool = $ti->isLeapyear;
Prüfe, ob Jahr ein Schaltjahr ist. Wenn ja, liefere "wahr", andernfalls "falsch".
$str = $ti->strftime($fmt);
$str = $ti->ddmmyyyy; $str = $ti->ddmmyyyy($sep);
Liefere Datum im Format DD.MM.YYYY, wobei Tag (DD) und Monat (MM) mit führender 0 angegeben werden. Ist $sep angegeben, wird anstelle des Punktes (.) die betreffende Zeichenkette als Trenner verwendet.
$str = $ti->ddmmyyyyhhmmss;
Liefere Datum/Zeit im Format "DD.MM.YYYY HH:MI:SS". Der Aufruf ist äquvalent zu
$str = $ti->ddmmyyyy.' '.$ti->hhmmss;
$str = $ti->dmy; $str = $ti->dmy($sep);
Liefere Datum im Format D.M.YYYY, wobei Tag (D) und Monat (M) ohne führende 0 angegeben werden. Ist $sep angegeben, wird anstelle des Punktes (.) die betreffende Zeichenkette als Trenner verwendet.
$str = $ti->dmyhhmmss;
Liefere Datum/Zeit im Format "D.M.YYYY HH:MI:SS". Der Aufruf ist äquvalent zu
$str = $ti->dmy.' '.$ti->hhmmss;
$str = $ti->dump; $str = $ti->dump($sep);
Liefere den internen Zustand des Zeitobjekts als Zeichenkette im Format
YYYY-MM-DD-hh-mm-ss
Ist $sep angegeben, verwende diesen String anstelle von '-' als Trenner.
$str = $ti->hhmmss; $str = $ti->hhmmss($sep);
Liefere Zeit im Format HH:MM:SS, wobei alle Angaben zweistellig sind, also ggf. eine führende 0 vorangestellt wird. Ist $sep angegeben, wird anstelle des Doppelpunkts (:) die betreffende Zeichenkette als Trenner verwendet.
$str = $ti->hhmm; $str = $ti->hhmm($sep);
Liefere Zeit im Format HH:MM, wobei alle Angaben zweistellig sind, also ggf. eine führende 0 vorangestellt wird. Ist $sep angegeben, wird anstelle des Doppelpunkts (:) die betreffende Zeichenkette als Trenner verwendet.
$str = $ti->yymmdd; $str = $ti->yymmdd($sep);
Liefere Datum im Format YY-MM-DD, wobei das Jahr zweistellig angegeben ist und Tag (DD) und Monat (MM) mit führender 0 angegeben werden. Ist $sep angegeben, wird anstelle des Bindestrichs (-) die betreffende Zeichenkette als Trenner verwendet.
$str = $ti->yyyymmdd; $str = $ti->yyyymmdd($sep);
Liefere Datum im Format YYYY-MM-DD, wobei Tag (DD) und Monat (MM) mit führender 0 angegeben werden. Ist $sep angegeben, wird anstelle des Bindestrichs (-) die betreffende Zeichenkette als Trenner verwendet.
$str = $ti->yyyymmddhhmmss; $str = $ti->yyyymmddhhmmss($sep);
iso()
Liefere Datum/Zeit im Format "YYYY-MM-DDXHH:MI:SS", wobei X das Trennzeichen zwischen Datum und Uhrzeit ist. Der Aufruf ist äquvalent zu
$str = $ti->yyyymmdd.$sep.$ti->hhmmss;
Ist $sep nicht angegeben, wird ein Leerzeichen als Trenner genommen.
$str = $ti->yyyymmddhhmm; $str = $ti->yyyymmddhhmm($sep);
Liefere Datum/Zeit im Format "YYYY-MM-DDXHH:MI", wobei X das Trennzeichen zwischen Datum und Uhrzeit ist. Der Aufruf ist äquvalent zu
$str = $ti->yyyymmdd.$sep.$ti->hhmm;
$str = $ti->yyyymmddxhhmmss;
Liefere Datum/Zeit im Format "YYYY-MM-DD+HH:MI:SS". Der Aufruf ist äquvalent zu
$str = $ti->yyyymmddhhmmss('+');
$ti = $ti->add($n1,$unit1,$n2,$unit2,...);
Addiere die angegebenen Zeitkomponenten ($nI, $unitI) für Jahr (Y), Monat (M) oder Tag (D) zur Zeit hinzu und liefere das modifizierte Zeitobjekt zurück. Die $nI sind ganze Zahlen, können also auch negativ sein.
$ti = Quiq::Time->new(2005,12,28,22,56,37); $ti->add(3,'Y',5,'M',-1,'D'); ==> 2009-05-27-22-56-37
$ti = $ti->addYears($n);
Addiere $n Jahre zum Zeitobjekt hinzu ($n ist eine ganze Zahl, kann also auch negativ sein) und liefere das modifizierte Zeitobjekt zurück.
Jahre hinzuaddieren
$ti = Quiq::Time->new(2005,12,28,22,56,37); $ti->addYears(5); ==> 2010-12-28-00-00-00
Jahre abziehen
$ti = Quiq::Time->new(2005,12,28,22,56,37); $ti->addYears(-6); ==> 1999-12-28-00-00-00
$ti = $ti->addMonths($n);
Addiere $n Monate zum Zeitobjekt hinzu ($n ist eine ganze Zahl, kann also auch negativ sein) und liefere das modifizierte Zeitobjekt zurück.
$ti = $ti->addDays($n);
Addiere $n Tage zum Zeitobjekt hinzu ($n ist eine ganze Zahl, kann also auch negativ sein) und liefere das modifizierte Zeitobjekt zurück.
$ti = $ti->addHours($n);
Addiere $n Stunden zum Zeitobjekt hinzu ($n ist eine ganze Zahl, kann also auch negativ sein) und liefere das modifizierte Zeitobjekt zurück.
$ti = $ti->addMinutes($n);
Addiere $n Minuten zum Zeitobjekt hinzu ($n ist eine ganze Zahl, kann also auch negativ sein) und liefere das modifizierte Zeitobjekt zurück.
$ti = $ti->addSeconds($n);
Addiere $n Sekunden zum Zeitobjekt hinzu ($n ist eine ganze Zahl, kann also auch negativ sein) und liefere das modifizierte Zeitobjekt zurück.
$bool = $ti1->equal($ti2);
Liefere "wahr", wenn der Zeitpunkt $ti1 gleich dem Zeitpunkt $ti2 ist, andernfalls "falsch".
$bool = $ti1->less($ti2);
Liefere "wahr", wenn der Zeitpunkt $ti1 vor dem Zeitpunkt $ti2 liegt, andernfalls "falsch".
$bool = $ti1->lessOrEqual($ti2);
Liefere "wahr", wenn der Zeitpunkt $ti1 vor oder gleich dem Zeitpunkt $ti2 ist, andernfalls "falsch".
$dur = $ti1->diff($ti2);
Bilde die Differenz zweier Zeit-Objekte $ti2-$ti1 und liefere ein Zeitdauer-Objekt $dur zurück.
Dauer in Sekunden:
$sec = $dur->asSeconds;
Dauer als Zeichenkette (DdHhMmS.Xs):
$str = $dur->asString;
$n = $class->monthAbbrToNum($abbr); $n = $class->monthAbbrToNum($abbr,$lang);
Liefere Monatsnummer (1, ..., 12) zur Monatsabkürzung der Sprache $lang. Default für $lang ist 'en'.
1.212
Frank Seitz, http://fseitz.de/
Copyright (C) 2023 Frank Seitz
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Quiq, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Quiq
CPAN shell
perl -MCPAN -e shell install Quiq
For more information on module installation, please visit the detailed CPAN module installation guide.