如何获取ISO8601定义的Work Week
工作中遇到一个需求,需要在打印标签的时候打印生产当天的工作周。工作周按照ISO-8601定义的标准计算。找到两种方案。
- Excel函数
- C#代码
- Excel函数
非常简单,调用一个Excel自带函数就可以,ISOWEEKNUM

- C#函数
代码如下:
using System;
using System.Globalization;
namespace MACAddressMgmtApp.ServiceImplementations
{
public static class WorkWeekHelper
{
public static int GetIso8601WeekOfYear(DateTime dt)
{
DayOfWeek day = CultureInfo.InvariantCulture.Calendar.GetDayOfWeek(dt);
if (day >= DayOfWeek.Monday && day <= DayOfWeek.Wednesday)
{
dt = dt.AddDays(3);
}
return CultureInfo.InvariantCulture.Calendar.GetWeekOfYear(dt, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);
}
}
}
浙公网安备 33010602011771号