gpt4 book ai didi

c# - 如何在 C# 中将工作周 double 转换为 DateTime

转载 作者:行者123 更新时间:2023-11-30 20:49:13 25 4
gpt4 key购买 nike

我有一个工作周编号(从 1 到 52 的数字),我想将其转换为日期。

例如:

3.1 = 01/13/2014

22.4 = 05/29/2014

我的公司使用工作周,其中星期一为 .1,星期二为 .2 等(星期六和星期日为 .6 和 .7)

有人知道可以执行此操作的插件吗?如果不需要,我不想重新发明轮子。

更新:

这是我正在谈论的日历的视觉效果。每年的工作周各不相同,这可能会带来挑战。谢谢

enter image description here

最佳答案

蛮力方法,可能会做得更好

找到一年中第一天之前的星期一,这是第 1 周。
现在将转换后的周数乘以 7 - 1(我们不是从零开始),加上天数减去 1 并将值传递给 AddDays 以找到所需的确切日期

void Main()
{
string k = "22.4";
Console.WriteLine(ConvertWeekDay(k, 2014).ToString());
k = "53.1";
Console.WriteLine(ConvertWeekDay(k, 2014).ToString());
k = "1.1";
Console.WriteLine(ConvertWeekDay(k, 2015).ToString());
}

public DateTime ConvertWeekDay(string weekday, int year)
{
int w; int d;
string[] wd = weekday.Split(new char[] {'.'});
w = int.Parse(wd[0]); d = int.Parse(wd[1]);
DateTime dt = new DateTime(year,1,1);
while(dt.DayOfWeek != DayOfWeek.Monday)
dt = dt.AddDays(-1);

dt = dt.AddDays(7 * (w - 1) + d - 1);
return dt;
}

请注意,如果更改年份,53.1 和 1.1 指的是同一天。

关于c# - 如何在 C# 中将工作周 double 转换为 DateTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23899555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com