给出年,月,日和周数,是否可以在C#中获取日期?

时间:2011-07-27 07:18:09

标签: c#-3.0

  

可能重复:
  Calculate date from week number

根据年,月,日和周数,是否可以获得日期?

e.g. Year = 2010
     Month =Jan
     Day = Sun
     WeekNumber = 3

输出: 2010-01-10

我在c#

中尝试

由于

4 个答案:

答案 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类。它可能很有用。