当前位置:  开发笔记 > 编程语言 > 正文

将DateTime Weeks计算为行

如何解决《将DateTimeWeeks计算为行》经验,为你挑选了1个好方法。

我目前正在ASP.Net C#中编写一个小日历.目前为了生成周的行,我执行以下循环:

var iWeeks = 6;
for (int w = 0; w < iWeeks; w++) {

这样可以正常工作,但是,有些月只有5周,而在极少数情况下,有4个月.

如何计算特定月份所需的行数?

这是我正在创建的一个例子:

在此输入图像描述

正如您在上个月所看到的那样,只需要5行.本月(2008年8月)从星期六开始,到第6周/星期一星期一结束.

在谷歌上找到的图像


这是我正在创建的一个例子:

在此输入图像描述

正如您在上个月所看到的那样,只需要5行.本月(2008年8月)从星期六开始,到第6周/星期一星期一结束.

在谷歌上找到的图像



1> Serhat Ozgel..:

这是执行此操作的方法:

public int GetWeekRows(int year, int month)
{
    DateTime firstDayOfMonth = new DateTime(year, month, 1);
    DateTime lastDayOfMonth = new DateTime(year, month, 1).AddMonths(1).AddDays(-1);
    System.Globalization.Calendar calendar = System.Threading.Thread.CurrentThread.CurrentCulture.Calendar;
    int lastWeek = calendar.GetWeekOfYear(lastDayOfMonth, System.Globalization.CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);
    int firstWeek = calendar.GetWeekOfYear(firstDayOfMonth, System.Globalization.CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);
    return lastWeek - firstWeek + 1;
}

您可以通过修改System.Globalization.CalendarWeekRule.FirstFourDayWeek部分来自定义日历周规则.我希望代码是自我解释的.

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有