您可以使用DatePart
与"ww"
了。见IBM Knowledge Center:
DATEPART(intervalType,inputDateTime)
...
WW:一年(1周以53 Firstdayofweek可与firstWeekOfYear确定的第一个日历周的确切天年)
结合DatePart ("w", inputDateTime)
或DayOfWeek(inputDateTime)
获取星期几,您可以计算当前日历星期的第一天和最后一天。
因此,对于一个特定日期(inputDateTime
),这将是您的公式“RangeWeek”:
Function (DateTimeVar inputDateTime)
NumberVar cw := DatePart("ww", inputDateTime);
DateTimeVar first := DateAdd("d", 1 - DayOfWeek(inputDateTime, crMonday), inputDateTime);
DateTimeVar last := DateAdd("d", 7 - DayOfWeek(inputDateTime, crMonday), inputDateTime);
"Week " + ToText(cw) + " (" + ToText(first) + " to " + ToText(last) + ")"
你需要给ToText你想要的格式字符串,当然。
例子:
Input: "August 23, 2017"
Output: "Week 34 (August 21 to August 27)"
这使得事情你在哪里得到的日期范围在公式中更容易。
DateTimeVar from := ...;
DateTimeVar to := ...;
NumberVar cw;
NumberVar count := 0;
StringVar output := "";
for cw := DatePart("ww", from) to DatePart("ww", to) do
(
output := output + chr(13) + RangeWeek(DateAdd("d", 7*count, from));
count := count + 1;
);
output
但如果你看到游行的压延第一个星期是唯一的'第一march'的assmuming周的第一天是'sunday'以同样的方式第二周是'02 - 三月08 - March' ..你确定这是否符合你的要求? – Siva
不,这不是特定的月份,例如我会尝试从3月1日到4月15日选择,因此它会自动获得7天,直到达到时间范围的最后一天为止。 – Captain16
确定在这种情况下第5周应该是从“3月29日到4月4日”? – Siva