2016-02-11 84 views
-1

以下代码给出上个月的最后一天。MonthCalendar1选定年份的第一天

MonthCalendar1.SelectionEnd = MonthCalendar1.SelectionStart.AddDays(-MonthCalendar1.SelectionStart.Day) 

哪个代码给出MonthCalendar1选定年份的第一天?

因此,如果选择日期是例如13.06.2015如何获得01.01.2015?

回答

0

如果你想要去与你目前的新增排除的方法天,简单地从DateTime.DayOfYear减去一个:

MonthCalendar1.SelectionEnd = MonthCalendar1.SelectionStart.AddDays(-(MonthCalendar1.SelectionStart.DayOfYear-1)) 

如果你想选择一年的最后一天,使用DateTime.DaysInMonth()

Dim dt As New DateTime(MonthCalendar1.SelectionStart.Year, 12, DateTime.DaysInMonth(MonthCalendar1.SelectionStart.Year, 12)) 
+0

谢谢Idle_Mind。解决了。类似的问题:如果选择日期是例如13.06.2015如何获得31.12.2015?所以这次我的问题是关于MonthCalendar1选定年份的最后一天。请注意,+365不起作用,因为有些年份包含366天:-)'MonthCalendar1.SelectionStart.AddDays( - (MonthCalendar1.SelectionStart.DayOfYear - 1)+ 365)' –

+0

请参阅编辑回答您的其他问题... –

2

使用基准日类似这样的仅一年只需创建一个新的日期:

Dim firstOfYearDate As Date = New Date(baseDate.Year, 1, 1)

喜欢这个

MonthCalendar1.MaxSelectionCount = 365 
MonthCalendar1.SelectionEnd = New Date(2015, 06, 13) 
MonthCalendar1.SelectionStart = New Date(MonthCalendar1.SelectionEnd.Year, 1, 1) 
+0

是选定结束和或SelectionStart是日期字段?如果是这样,他们不能设置为新的日期值。 –

+0

我添加了特别使用MonthCalendar控件的代码 –

相关问题