2010-02-02 46 views
3

我需要安装上周,在下拉列表改变DateTime的[上周,上月为一期]

上个月期间我做

 switch (DDL.SelectedIndex) 
     { 
      case 0: 
       { 
        // last week 
        this.TextBox3.Text = DateTime. //Previos week first day 
        this.TextBox4.Text = DateTime. //Previos week last day 
       } break; 
      case 1: 
       { 
        // last mouth 
        this.TextBox3.Text = DateTime.// Previos month first day 
        this.TextBox4.Text = DateTime.// Previos month last day 
       } break; 
} 

那么有没有一些方法如何选择日期像我想要的价值?

也,我已经有了文本框

谢谢AJAX日历扩展。

+0

你想要一周中的星期几(星期一,星期二,星期三......)还是编号日期(1,2 3,...) – RedDeckWins 2010-02-02 06:27:06

+0

我想要日期,就像01.01.2010 ... – Cynede 2010-02-02 06:30:32

回答

3

这样的事情,我想:

int dayOfWeekNumber = (int)DateTime.Today.DayOfWeek - (int)CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek; 

var previosWeekFirstDay = DateTime.Today.AddDays(-7 - dayOfWeekNumber); 

var previosWeekLastDay = previosWeekFirstDay.AddDays(6); 

var previosMonthFirstDay = DateTime.Today.AddMonths(-1); 
previosMonthFirstDay = previosMonthFirstDay.AddDays(-previosMonthFirstDay.Day + 1); 

var previosMonthLastDay = previosMonthFirstDay.AddDays(DateTime.DaysInMonth(previosMonthFirstDay.Year, previosMonthFirstDay.Month) - 1); 

编辑:见Fredrik Mörk评论。

+0

真棒:)谢谢。 – Cynede 2010-02-02 06:52:10

+2

您可能想考虑一些国家认为周日是一周的第一天,而另一些国家则使用周一(您可以从CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek中获取该信息)。 – 2010-02-02 06:52:23

+0

hm ....我需要星期一作为所有的第一天 – Cynede 2010-02-02 07:03:52

相关问题