根据年,月,日和周数,是否可以获得日期?
e.g. Year = 2010
Month =Jan
Day = Sun
WeekNumber = 3
输出: 2010-01-10
我在c#
中尝试由于
答案 0 :(得分:1)
我会这样做:
int Year = 2010;
int Month = 1; //Jan=1, Feb=2, ...
int Day = 0; //Sun=0, Mon=1, ...
int WeekNumber = 3; // greater than 0
DateTime dateValue = new DateTime(Year, Month, 1);
int firstDay = (int)dateValue.DayOfWeek;
dateValue = dateValue.AddDays(Day - firstDay + (WeekNumber - 1) * 7);
答案 1 :(得分:0)
我不认为在普通的.NET BCL中有这样的日期计算。但是有些图书馆可以帮助你,请参阅Fluent DateTime。使用这个库,您可以尝试类似的东西:
var firstWeekInYearBeginning = new DateTime(2010, 1, 2).Previous(DayOfWeek.Monday); // note 2 to not miss a week if the year begins on Monday
var expectedDate = 3.Weeks().From(firstWeekInYearBeginning);
答案 2 :(得分:0)
基于API here,请不要根据给定的信息初始化DateTime对象。您需要开发一种算法来获取一年中的确切日期。一个简单的策略是获得本月的第一天,并在此基础上找到该月的第一个星期一。这是该月的WeekNumber 1的开始,您可以通过简单循环找到所需的Week,并找到确切的日期。然后,您就会知道您感兴趣的日历日期。
BTW:我假设一年/月的WeekNumber从该年/月的第一个星期一开始。如果我错了,请有人纠正我。
答案 3 :(得分:0)
也许您应该查看System.Globalization.Calendar类。它可能很有用。