【问题标题】:Get week from selected monthcalendar-date从选定的月历日期获取星期
【发布时间】:2012-08-02 08:01:10
【问题描述】:

我需要一个解决方案来计算从所选日期开始的周数。 (在月历中)
我试过了:

DateTime dt1 = new DateTime(monthCalendar1.SelectionStart.Year, 
                            monthCalendar1.SelectionStart.Month, 
                            monthCalendar1.SelectionStart.Day);

DateTime dt2 = new DateTime(monthCalendar1.SelectionStart.Year, 
                            1, 
                            1);

System.TimeSpan varTime = dt1 - dt2;
int weeks = (varTime.Days / 7) + 1;

但是一周的开始和结束日期不正确,并且在某些年份我有 53 周?
解决这个问题的最佳方法是什么?

【问题讨论】:

  • 有些年份有 53 周,这不是“设计”造成的错误

标签: c# week-number monthcalendar


【解决方案1】:
public int WeekNumber(DateTime date)
{
    CultureInfo ciCurr = CultureInfo.CurrentCulture;
    int weekNum = ciCurr.Calendar.GetWeekOfYear(date,
                                          CalendarWeekRule.FirstFourDayWeek,
                                          DayOfWeek.Monday);
    return weekNum;
}

记得将 CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday 更正为您当前的文化,这里的一个用途是丹麦/丹麦

【讨论】:

    【解决方案2】:

    试试日历的GetWeekOfYear函数。查看此处并向下滚动以查看完整示例:http://msdn.microsoft.com/en-us/library/system.globalization.calendar.getweekofyear.aspx

    【讨论】:

    • 任何人发布解决方案并再次将其删除。无论如何,我可以抓住剪断。谢谢未知 :)
    • @user1559441:我再次取消删除我的答案 - 只是意识到我实际上并没有回答你所有的问题:-)
    猜你喜欢
    • 2011-06-26
    • 2014-03-08
    • 1970-01-01
    • 2019-03-09
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 2018-06-12
    • 1970-01-01
    相关资源
    最近更新 更多