Moin,
sehe ich das richtig, dass awk (strftime()) und date zwar die Formatierungen %W (fängt bei 0 an zu zählen) sowie %V (fängt bei 1 an zu zählen) kennen, aber nicht "unsere" Zählweise nach ISO 8601?
Siehe: https://de.wikipedia.org/wiki/Woche#Zäh ... h_ISO_8601
Einen Algorithmus, der entsprechend %W oder %V wählt, bekomme ich hin, aber geht es nicht auch ohne? Z.B. durch setzen einer Umgebungsvariablen?
Natürlich habe ich Manpages gewälzt, aber mein Englisch ist nicht gerade der Knaller, ich übersehe da leicht etwas.
Vielleicht weiß einer von Euch mehr.
[gelöst] awk/date: Zählweise von Kalenderwochen
[gelöst] awk/date: Zählweise von Kalenderwochen
Zuletzt geändert von Phineas am 21.01.2019 23:44:24, insgesamt 1-mal geändert.
Re: awk/date: Zählweise von Kalenderwochen
Meine Manpage von date(1) sagt:
Hier die Definition von POSIX:
Ich frage mich, welcher ISO-Standard gemeint sein soll, wenn nicht ISO 8601.%V ISO week number, with Monday as first day of week
(01..53)
Hier die Definition von POSIX:
Diese Definition sollte wohl der von ISO 8601 entsprechen:http://pubs.opengroup.org/onlinepubs/9699919799/utilities/date.html hat geschrieben: %V
Week of the year (Monday as the first day of the week) as a decimal number [01,53]. If the week containing January 1 has four or more days in the new year, then it shall be considered week 1; otherwise, it shall be the last week of the previous year, and the next week shall be week 1.
Ich sehe gerae noch nicht, wo dein Problem liegt. Vielleicht kannst du es nochmal erklaeren.https://de.wikipedia.org/wiki/Woche#Z%C3%A4hlweise_nach_ISO_8601 hat geschrieben: Die Kalenderwoche ist nach ISO 8601 so definiert:
1) Kalenderwochen haben 7 Tage, beginnen an einem Montag und werden über das Jahr fortlaufend nummeriert.
2) Die Kalenderwoche 1 eines Jahres ist diejenige, die den ersten Donnerstag enthält.
Use ed once in a while!
Re: awk/date: Zählweise von Kalenderwochen
Problem ist mein schlechtes Englisch. Manchmal muss ich mit der Nase drauf gestoßen werden, danke dafür, Meillo.
Ich hätte %V einfach ausprobieren sollen:
Und tatsächlich: Die nächsten 50 Jahre passen, das reicht dicke für mich.
Danke nochmal.
Ich hätte %V einfach ausprobieren sollen:
Code: Alles auswählen
awk 'BEGIN { for (j=2019;j<=2069;j++) { for (d=1;d<=8; d++) { if (d==8) { print; break }; print strftime("%a, %d.%m.%Y - %V",mktime(j " 01 " d " 00 00 00")) } } }'
Danke nochmal.
Re: [gelöst] awk/date: Zählweise von Kalenderwochen
Schoen, dass sich das Problem so schnell hat loesen lassen.
Ich habe noch folgenden Abschnitt auf der POSIX-Seite gefunden, der den Hintergrund beschreibt und bestaetigt, dass %V ISO 8601 entspricht:
Ich habe noch folgenden Abschnitt auf der POSIX-Seite gefunden, der den Hintergrund beschreibt und bestaetigt, dass %V ISO 8601 entspricht:
The international standard, based on the ISO 8601:2000 standard where Monday is the first weekday and the algorithm for the first week number is more complex: If the week (Monday to Sunday) containing January 1 has four or more days in the new year, then it is week 1; otherwise, it is week 53 of the previous year, and the next week is week 1. These are represented by the new conversion specifications %u and %V, added as a result of international comments.
Use ed once in a while!