2012-12-18 186 views
3

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

例如: 今天的日期是18 Dec 2012。就像每三个月中的第一个,所以我增加3个月,这个月出来是Feb 2013。但我想设置日期1st Feb 2013。我无法做到。请帮助。

+0

We你怎么样做,你添加月份的日期将有不同的一天! ! – V4Vendetta

+0

@ V4Vendetta:用于添加月数我正在使用像 DueDate.Text =(DateTime.Parse(StartDate.Text).AddMonths(N))。ToShortDateString(); 因此,我能够添加月份,但无法设置月的特定日期 – Rahul2788

+0

那么试着使用'new DateTime(yr,mnt,yourday).ToShortDateString()',这里yr会在startdate和月为+ N,然后设定你的具体日期 – V4Vendetta

回答

6

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

DateTime todayDate = DateTime.Now; 
DateTime after3MonthDate = todayDate.AddMonths(3); 
//Set First Day of Month 
after3MonthDate = new DateTime(after3MonthDate.Year, after3MonthDate.Month, 1); 
+0

完成!谢谢拍品 – Rahul2788

1

试试这个:

// 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); 
} 
+0

完成!谢谢拍品 – Rahul2788

0

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

if(myDate.Day > 1) 
{ 
    myDate = myDate.AddDays(-(myDate.Day - 1)); 
} 
+0

我可以请求您请您在答案上添加更多背景。仅有代码的答案很难理解。如果您可以在帖子中添加更多信息,它可以帮助提问者和未来的读者。 – RBT