2016-04-12 2 views
0

Ich versuche, Jahr/Woche Nummer von einem Datumsfeld korrekt zu berechnen.Berechnung YearWeek von Tcl

Ich habe versucht, die Uhr Format-Befehl zu verwenden, wie

% clock format [clock scan "2016.01.01" -format "%Y.%m.%d"] -format "%Y-WW%V" 
2016-WW53 

folgt und während der Woche Nummer korrekt ist, ist das Jahr nicht, weil in diesem Fall jan1 landet in Woche 53, wie es im Jahr 2016 tat Seit Der Tcl Taktformat-Befehl gibt die Wochennummer und das Jahr getrennt an. Am Ende wird Jan 1, 2016 als 2016-WW53 angezeigt, aber dies sollte als 2015-WW53 angezeigt werden.

Gibt es dafür eine eingebaute Funktion oder muss ich eine if/then-Bedingung verwenden, um das Jahr richtig zu wählen?

Antwort

3

Verwenden Sie einfach den Modifikator %G:

clock format [clock scan "2016.01.01" -format "%Y.%m.%d"] -format "%G-WW%V" 

Ausgang:

2015-WW53 

Aus dem Handbuch:

% G
Bei der Ausgabe erzeugt eine vierstellige Jahreszahl passend zur Verwendung mit der Wochenbasierter ISO8601-Kalender; Das heißt, die Jahreszahl entspricht der von% V erzeugten Wochennummer. Bei der Eingabe akzeptiert eine solche vierstellige Jahreszahl, möglicherweise mit führenden Leerzeichen.

+0

Danke! Ich denke, ich habe die Dokumentation nicht sorgfältig genug gelesen. – Jonjilla