![](/img/trans.png)
[英]How to get the first and last day of a month calendar view (sunday-saturday)
[英]How to get first and last day in month view at DateTimePicker
我在Forms应用程序中有一个DataTimePicker。 是否有一种简单的方法(最好是在C#中)来获得一个月的第一天和最后一天。 例如,对于12月1日,我想要获得2014年11月24日和2015年1月4日,如图所示。
我认为它应该是这样的(例如int year = 2014; int month = 12当月):
DateTime dt = new DateTime(year, month, 1);
int offset = ((int)dt.DayOfWeek - (int)CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek + 6) % 7 + 1;
DateTime firstDate = dt.AddDays(-offset);
DateTime lastDate = firstDate.AddDays(41);
您可以看到DateTimePicker将月份的第一行放在第一行,除了它是一周的第一天。 然后第一个月是在第二行。 因此,您必须查看一周中第一天的文化背景。
这是我尝试的另一个,它正在工作,但我看到Fratyx已经回答了。 所以我会在这里发布。
private static void Main(string[] args)
{
DateTime date = new DateTime(2014, 12, 1);
var firstAndLastDays = getFirstDateInDatePicker(date);
}
private static Tuple<int, int> getFirstDateInDatePicker(DateTime date)
{
int totalDaysInMonth = DateTime.DaysInMonth(date.Year, date.Month);
int totalDiff = TOTAL_DAYS - totalDaysInMonth;
DateTime firstDayOfMonth = new DateTime(date.Year, date.Month, 1);
DateTime lastDayOfMonth = new DateTime(date.Year, date.Month, totalDaysInMonth);
int subtractor = (6 + (int)firstDayOfMonth.DayOfWeek) * -1;
return new Tuple<int, int>(firstDayOfMonth.AddDays(subtractor).Day,
lastDayOfMonth.AddDays(totalDiff + subtractor).Day);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.