NAME
Quiq::Time - Klasse zur Repräsentation von Datum und Uhrzeit
BASE CLASS
DESCRIPTION
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).
METHODS
Konstruktor
new() - Instantiiere Zeitobjekt
Synopsis
$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;
Description
Instantiiere Zeitobjekt, setze die Zeitkomponenten auf die angegebenen Werte und liefere das Objekt zurück.
Aufrufargumente siehe $ti->set().
copy() - Kopiere Zeitobjekt
Synopsis
$ti2 = $ti->copy;
Description
Kopiere Zeitobjekt und liefere die Kopie zurück.
asArray() - Liefere Zeit als Array
Synopsis
($year,$month,$day,$hour,$minute,$second) = $ti->asArray;
Zeit/Datum setzen
set() - Setze Zeit neu
Synopsis
$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;
Description
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.
setTime() - Setze Zeitanteil
Synopsis
$ti = $ti->setTime($hour,$minute,$second);
Description
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.
truncate() - Kürze Zeitkomponenten
Synopsis
$ti = $ti->truncate($unit);
Description
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.
Example
$ti = Quiq::Time->new(2005,12,28,22,56,37);
$ti->truncate('D');
==>
2005-12-28-00-00-00
Abfrage von Zeitkomponenten
year() - Liefere Jahr
Synopsis
$year = $ti->year;
month() - Liefere Monat (Nummer)
Synopsis
$month = $ti->month;
Description
Liefere die Nummer des Monats. Wertebereich: 1-12.
day() - Liefere Tag des Monats (Nummer)
Synopsis
$day = $ti->day;
dayAbbr() - Abgekürzter Wochentagsname
Synopsis
$str = $ti->dayAbbr;
Description
Liefere abgekürzten Wochentagsnamen (Mo, Di, Mi, Do, Fr, Sa, So).
dayName() - Wochentagsname
Synopsis
$n = $ti->dayName;
Description
Liefere Wochentagsname (Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag).
monthName() - Monatsname
Synopsis
$str = $ti->monthName;
Description
Liefere Monatsnamen (Januar, Februar, ..., Dezember).
dayOfWeek() - Wochentagsnummer
Synopsis
$n = $ti->dayOfWeek;
Description
Liefere Wochentagsnummer im Bereich 1-7, 1 = Montag.
daysOfMonth() - Anzahl der Tage des Monats
Synopsis
$n = $ti->daysOfMonth;
Description
Liefere die Anzahl der Tage des Monats, also 31 für Januar, 28 oder 29 für Februar usw.
dayOfYear() - Tag des Jahres (Nummer)
Synopsis
$n = $ti->dayOfYear;
Description
Liefere die Tagesnummer innerhalb des Jahres.
weekOfYear() - Kalenderwoche (Jahr, Wochennummer)
Synopsis
($year,$n) = $ti->weekOfYear;
Description
Liefere die Kalenderwoche, bestehend aus Jahr und Wochennummer gemäß DIN 1355.
epoch() - Epoch-Zeit
Synopsis
$epoch = $ti->epoch('local');
$epoch = $ti->epoch('utc');
$epoch = $ti->epoch;
Description
Liefere Epoch-Zeit. Ein Aufruf ohne Argument ist äquivalent zu $ti->epoch('utc').
isLeapyear() - Prüfe auf Schaltjahr
Synopsis
$bool = $ti->isLeapyear;
Description
Prüfe, ob Jahr ein Schaltjahr ist. Wenn ja, liefere "wahr", andernfalls "falsch".
Ausgabe von Zeit/Datum
strftime() - Formatiere per strftime formatierte Zeit
Synopsis
$str = $ti->strftime($fmt);
ddmmyyyy() - Liefere formatiertes Datum
Synopsis
$str = $ti->ddmmyyyy;
$str = $ti->ddmmyyyy($sep);
Description
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.
ddmmyyyyhhmmss() - Liefere formatiertes Datum+Zeit
Synopsis
$str = $ti->ddmmyyyyhhmmss;
Description
Liefere Datum/Zeit im Format "DD.MM.YYYY HH:MI:SS". Der Aufruf ist äquvalent zu
$str = $ti->ddmmyyyy.' '.$ti->hhmmss;
dmy() - Liefere formatiertes Datum
Synopsis
$str = $ti->dmy;
$str = $ti->dmy($sep);
Description
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.
dmyhhmmss() - Liefere formatiertes Datum+Zeit
Synopsis
$str = $ti->dmyhhmmss;
Description
Liefere Datum/Zeit im Format "D.M.YYYY HH:MI:SS". Der Aufruf ist äquvalent zu
$str = $ti->dmy.' '.$ti->hhmmss;
dump() - Liefere Zeitobjekt als Zeichenkette
Synopsis
$str = $ti->dump;
$str = $ti->dump($sep);
Description
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.
hhmmss() - Liefere formatierte Zeit
Synopsis
$str = $ti->hhmmss;
$str = $ti->hhmmss($sep);
Description
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.
hhmm() - Liefere formatierte Zeit
Synopsis
$str = $ti->hhmm;
$str = $ti->hhmm($sep);
Description
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.
yymmdd() - Liefere formatiertes Datum
Synopsis
$str = $ti->yymmdd;
$str = $ti->yymmdd($sep);
Description
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.
yyyymmdd() - Liefere formatiertes Datum
Synopsis
$str = $ti->yyyymmdd;
$str = $ti->yyyymmdd($sep);
Description
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.
yyyymmddhhmmss() - Liefere formatiertes Datum+Zeit
Synopsis
$str = $ti->yyyymmddhhmmss;
$str = $ti->yyyymmddhhmmss($sep);
Alias
iso()
Description
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.
yyyymmddhhmm() - Liefere formatiertes Datum + Stunde + Minute
Synopsis
$str = $ti->yyyymmddhhmm;
$str = $ti->yyyymmddhhmm($sep);
Description
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;
Ist $sep nicht angegeben, wird ein Leerzeichen als Trenner genommen.
yyyymmddxhhmmss() - Liefere formatiertes Datum+Zeit mit +-Trenner
Synopsis
$str = $ti->yyyymmddxhhmmss;
Description
Liefere Datum/Zeit im Format "YYYY-MM-DD+HH:MI:SS". Der Aufruf ist äquvalent zu
$str = $ti->yyyymmddhhmmss('+');
Zeitarithmetik
add() - Addiere Zeitkomponenten
Synopsis
$ti = $ti->add($n1,$unit1,$n2,$unit2,...);
Description
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.
Example
$ti = Quiq::Time->new(2005,12,28,22,56,37);
$ti->add(3,'Y',5,'M',-1,'D');
==>
2009-05-27-22-56-37
addYears() - Addiere n Jahre
Synopsis
$ti = $ti->addYears($n);
Description
Addiere $n Jahre zum Zeitobjekt hinzu ($n ist eine ganze Zahl, kann also auch negativ sein) und liefere das modifizierte Zeitobjekt zurück.
Example
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
addMonths() - Addiere n Monate
Synopsis
$ti = $ti->addMonths($n);
Description
Addiere $n Monate zum Zeitobjekt hinzu ($n ist eine ganze Zahl, kann also auch negativ sein) und liefere das modifizierte Zeitobjekt zurück.
addDays() - Addiere n Tage
Synopsis
$ti = $ti->addDays($n);
Description
Addiere $n Tage zum Zeitobjekt hinzu ($n ist eine ganze Zahl, kann also auch negativ sein) und liefere das modifizierte Zeitobjekt zurück.
addHours() - Addiere n Stunden
Synopsis
$ti = $ti->addHours($n);
Description
Addiere $n Stunden zum Zeitobjekt hinzu ($n ist eine ganze Zahl, kann also auch negativ sein) und liefere das modifizierte Zeitobjekt zurück.
addMinutes() - Addiere n Minuten
Synopsis
$ti = $ti->addMinutes($n);
Description
Addiere $n Minuten zum Zeitobjekt hinzu ($n ist eine ganze Zahl, kann also auch negativ sein) und liefere das modifizierte Zeitobjekt zurück.
addSeconds() - Addiere n Sekunden
Synopsis
$ti = $ti->addSeconds($n);
Description
Addiere $n Sekunden zum Zeitobjekt hinzu ($n ist eine ganze Zahl, kann also auch negativ sein) und liefere das modifizierte Zeitobjekt zurück.
Vergleich von Zeiten
equal() - Prüfe auf Gleichheit
Synopsis
$bool = $ti1->equal($ti2);
Description
Liefere "wahr", wenn der Zeitpunkt $ti1 gleich dem Zeitpunkt $ti2 ist, andernfalls "falsch".
less() - Prüfe auf kleiner
Synopsis
$bool = $ti1->less($ti2);
Description
Liefere "wahr", wenn der Zeitpunkt $ti1 vor dem Zeitpunkt $ti2 liegt, andernfalls "falsch".
lessOrEqual() - Prüfe auf kleinergleich
Synopsis
$bool = $ti1->lessOrEqual($ti2);
Description
Liefere "wahr", wenn der Zeitpunkt $ti1 vor oder gleich dem Zeitpunkt $ti2 ist, andernfalls "falsch".
Zeitdifferenz
diff() - Differenz zweier Zeiten
Synopsis
$dur = $ti1->diff($ti2);
Description
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;
Konvertierung (Klassenmethoden)
monthAbbrToNum() - Liefere Monatsnummer zu Monats-Abkürzung
Synopsis
$n = $class->monthAbbrToNum($abbr);
$n = $class->monthAbbrToNum($abbr,$lang);
Description
Liefere Monatsnummer (1, ..., 12) zur Monatsabkürzung der Sprache $lang. Default für $lang ist 'en'.
VERSION
1.222
AUTHOR
Frank Seitz, http://fseitz.de/
COPYRIGHT
Copyright (C) 2024 Frank Seitz
LICENSE
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.