16

我在 AjaxControlToolkit 中使用 Calender Extender Control。基本上有两个日期控件:Start DateEnd date(都与日历扩展器相关联)。根据选择的开始日期,我在结束日期字段中填充日期,例如添加月数或天数。但是就像我已经能够添加月份一样,但也想设置该月的特定日期,这是我无法做到的。

示例:今天的日期是18 Dec 2012。就像每三个月的第 1 天,所以我加上 3 个月,这个月就出来了Feb 2013。但我想设置 Day 1st Feb 2013。我做不到。请帮忙。

4

3 回答 3

20

您可以通过添加月份来设置月份中的任何一天。

DateTime todayDate = DateTime.Now;
DateTime after3MonthDate = todayDate.AddMonths(3);
//Set First Day of Month
after3MonthDate = new DateTime(after3MonthDate.Year, after3MonthDate.Month, 1);
于 2012-12-18T06:56:44.007 回答
5

此代码可用于现有日期时间变量,以将日期部分设置为该月的第一天:

if(myDate.Day > 1)
{
    myDate = myDate.AddDays(-(myDate.Day - 1));
}
于 2017-01-20T13:55:13.597 回答
3

试试这个:

// Here is the simple wrapper method to get the first day of the month:
public DateTime FirstDayOfMonthFromDateTime(DateTime dateTime)
{
   return new DateTime(dateTime.Year, dateTime.Month, 1);
}

// Set the due date...
DueDate.Text = (FirstDayOfMonthFromDateTime(DateTime.Parse(StartDate.Text).AddMonths(N))).ToShortDateString();

您还可以修改包装方法以获取一个月中的任何一天:

public DateTime DayOfMonthFromDateTime(DateTime dateTime, int day)
{
   return new DateTime(dateTime.Year, dateTime.Month, day);
}
于 2012-12-18T07:00:31.440 回答