从选定的月历日期获取星期

Posted

技术标签:

【中文标题】从选定的月历日期获取星期【英文标题】: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 周,这不是“设计”造成的错误 【参考方案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:我再次取消删除我的答案 - 只是意识到我实际上并没有回答你所有的问题:-)

以上是关于从选定的月历日期获取星期的主要内容,如果未能解决你的问题,请参考以下文章

在monthcalendar中如何获取选定日期是星期几

自动化 .net 月历窗口

月历 vb.net 多个日期选择

在C#的月历控件中,怎样得到被选中的日期?

如何使用c#从其他形式的菜单项中显示月历上的当前日期

如何从日期时间获取日期名称