Leser: 23
QuoteBisher habe ich dafür DateTime verwendet, aber da kann man keine 24:00 angeben, da es das ja scheinbar nicht gibt. Nun sag das mal jemand einem normalen Menschen -.-
QuoteGibt es eine Möglichkeit, z.B. einen Eintrag auf einem Stundenzettel von 0:00 bis 24:00 Uhr (keine Pause) in DateTime umzusetzen? Ich will in diesem Fall als Summe 24:00 Stunden da stehen haben.
2009-08-25T21:42:47 sid burnWarum trägst du nicht 00:00 bis 23:59 ein? Das sind ganz genau 24 Stunden. Wenn du 00:00 bis 24:00 einträgst hättest du 24 Stunden und 1 Minute.
2009-08-26T07:38:19 Taulmarill2009-08-25T21:42:47 sid burnWarum trägst du nicht 00:00 bis 23:59 ein? Das sind ganz genau 24 Stunden. Wenn du 00:00 bis 24:00 einträgst hättest du 24 Stunden und 1 Minute.
Ähm, das musst du mir jetzt mal erklären, wie du bei 00:00 bis 23:59 Uhr auf genau 24 Stunden kommst. Für mich sind das 23 Stunden und 59 Minuten.
2009-08-26T07:48:01 freddyEs sind ganz genau 23 Stunden, 59 Minuten, 59 Sekunden und gegen unendlich gehende Millisekunden. Genähert sind es quasi 24 Stunden, weil der Ablauf der letzten Millisekunden in der 23. Stunde, 59. Minute und 59. Sekunde ja praktisch (nicht rechnerisch) eine volle Minute ergibt.
2009-08-26T08:14:10 pktmGenerell finde ich es unsinnig, Benutzern per SOftware etwas vorzuschreiben, was Ihnen nicht natürlich begegnet.
2009-08-26T08:14:10 pktmDas Haupthandycap ist bei dem genannten Stundenzettel, dass er nur 1 Datum enthält. Man kann also nicht spezifizieren, dass das 2. mal 0:00 Uhr am nächsten tag liegt. Man macht das aber in Papierform auch nicht so - und genau das will ich abbilden.
2009-08-26T08:14:10 pktmWie soll ich das denn sonst machen? Jemand eine Idee? Pseudocode oder Vorgehensweisen?
QuoteAlso, ich kann da nur den Kopd schütteln. Wenn ich von 0 bis 24 Uhr gearbeitet habe, dann habe ich 24h gearbeitet, und die will ich auch abrechnen. Folglich muss ich sowohl 24 Uhr (wegenmeiner als Synonym zu 0:00 des nächsten Tages) in den Stundenzettel eintragem als auch bei der Summe 24h rausbekommen.
QuoteGenerell finde ich es unsinnig, Benutzern per SOftware etwas vorzuschreiben, was Ihnen nicht natürlich begegnet. Ich will den von euch sehen, der 23:59:9999999 auf seinen Stundenzettel einträgt, wenn er bis 0 Uhr nachts gearbitet hat.
QuoteGenerell finde ich es unsinnig, Benutzern per SOftware etwas vorzuschreiben, was Ihnen nicht natürlich begegnet. Ich will den von euch sehen, der 23:59:9999999 auf seinen Stundenzettel einträgt, wenn er bis 0 Uhr nachts gearbitet hat.
QuoteMan sagt sich auch nicht, dass man am 22.08. um 0:00 aufgehört hat zu arneiten, wenn man um 24:00 Uhr den 21.08. aufgehört hat. Dann hat man vom Sinnverständnis her nur am 21. gearbeitet und am 22. nicht mehr.
QuoteDie Aussage "24 Uhr gibt es ja auch gar nicht" geht also schlichtweg an der Anforderung vorbei, 24 Uhr auf dem Stundenzettel - wie es im RL auch gemacht wird - eintragen zu können.
QuoteWie soll ich das denn sonst machen? Jemand eine Idee? Pseudocode oder Vorgehensweisen?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
my $start = DateTime->new( day => 1, month => 1, year => 2009, hour => 0, minute => 0, second => 0, time_zone => 'Europe/Berlin', ); my $end = DateTime->new( day => 2, month => 1, year => 2009, hour => 0, minute => 0, second => 0, time_zone => 'Europe/Berlin', ); print $end->delta_ms($start)->in_units('hours'), "\n";
2009-08-26T07:54:51 LinuxerWieso das?
Bei einer Angabe von "15:00 - 15:15" sind es doch auch "nur" 15 Minuten, und keine Sekunde mehr.
Warum sind es dann bei "00:00 - 23:59" auf einmal 23 Stunden, 59 Minuten und zusätzlich noch 59 Sekunden und zig Millisekunden?
2009-08-26T09:06:35 TaulmarillIhr seit euch aber schon noch im klaren darüber, dass es hier um Stundenzettel geht und nicht um Quantenmechanik, oder?
Wobei, war in der QM nicht auch die Zeit äh Raum .... ich meine Raumzeit in Quanten aufgeteilt?
2009-08-26T07:48:01 freddy2009-08-26T07:38:19 Taulmarill2009-08-25T21:42:47 sid burnWarum trägst du nicht 00:00 bis 23:59 ein? Das sind ganz genau 24 Stunden. Wenn du 00:00 bis 24:00 einträgst hättest du 24 Stunden und 1 Minute.
Ähm, das musst du mir jetzt mal erklären, wie du bei 00:00 bis 23:59 Uhr auf genau 24 Stunden kommst. Für mich sind das 23 Stunden und 59 Minuten.
Es sind ganz genau 23 Stunden, 59 Minuten, 59 Sekunden und gegen unendlich gehende Millisekunden. Genähert sind es quasi 24 Stunden, weil der Ablauf der letzten Millisekunden in der 23. Stunde, 59. Minute und 59. Sekunde ja praktisch (nicht rechnerisch) eine volle Minute ergibt.
2009-08-26T08:12:50 TaulmarillSowas berücksichtigt allerdings zeitzonenspezifische Zeitumstellungen nicht.Ich mache das so, dass ich alle Zeiten per Time::Local in Unix-Epoch umrechne. Dann kann ich die vergangene Zeit einfach durch simple Subtraktion ermitteln.
1
2
3
4
5
6
my $string1 = '2009-08-26T00:00:00 MEZ';
my $string2 = '2009-08-26T24:00:00 MEZ';
my $err;
my $date1 = ParseDate($string1);
my $date2 = ParseDate($string2);
my $delta = DateCalc($date1,$date2,\$err);
QuoteKeins der Datumsmodule wie DateTime, DateManip kann mit sowas umgehen: