从Tcl计算YearWeek

时间:2016-04-12 17:41:48

标签: tcl

我试图从日期字段中正确计算工作年/周数。

我尝试使用clock format命令,如下所示

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

虽然周数正确,但年份不是因为在这种情况下Jan1在第53周降落,就像2016年那样。由于Tcl时钟格式命令分别指定周数和年份,我最终将Jan 1, 2016显示为2016-WW53,但这应显示为2015-WW53

是否有内置功能或是否需要使用if / then条件正确选择年份?

1 个答案:

答案 0 :(得分:3)

只需使用修饰符%G

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

输出:

2015-WW53

从手册:

  

<强>%G
  在输出时,产生一个四位数的年份数,适用于基于周的ISO8601日历;也就是说,年份编号对应于%V生成的周数。在输入时,接受这样一个四位数的年份数,可能带有前导空格。