怎样获得某年第n周的起止日期
如要知道2005年21周是几月几号到几月几号?

解决方案 »

  1.   

    DateTime dt = new DateTime(2005,1,1);
    DateTime dt2 = dt.AddDays(7 * 21);
    dt2.DayOfWeek......
      

  2.   

    Dim x As DateTime = CDate(TextBox1.Text) '某一年的一月一号
            Dim a As Integer
            Dim n As Integer '周数
            n = 21
            Select Case x.DayOfWeek
                Case DayOfWeek.Friday
                    a = 5
                Case DayOfWeek.Monday
                    a = 8
                Case DayOfWeek.Saturday
                    a = 6
                Case DayOfWeek.Sunday
                    a = 7
                Case DayOfWeek.Thursday
                    a = 4
                Case DayOfWeek.Tuesday
                    a = 2
                Case DayOfWeek.Wednesday
                    a = 3
            End Select
            Dim y As DateTime = x.AddDays(7 * n - a + 1)
            MessageBox.Show(CStr(y))
            MessageBox.Show(CStr(y.AddDays(6)))
      

  3.   

    楼上的是VB的,转换成C#我试过了没有问题。
      

  4.   

    DateTime x = Convert.ToDateTime(TextBox1.Text); //某一年的一月一号
    int a = 0;
    int n = 0;//周数
    n = 21;
    switch (x.DayOfWeek)
    {
        Case DayOfWeek.Friday:
            a = 5;
            break;
        Case DayOfWeek.Monday:
            a = 8;
            break;
        Case DayOfWeek.Saturday:
            a = 6;
            break;
        ................
    }          
    DateTime y = x.AddDays(7 * n - a + 1);
    string stry = Convert.ToString(y);
    string stry1 = Convert.ToString(y.AddDays(6));
      

  5.   

    to C#DateTime x = System.Convert.ToDateTime(TextBox1.Text); 
    int a; 
    int n; 
    n = 21; 
    if (x.DayOfWeek == DayOfWeek.Friday) { 
     a = 5; 
    } else if (x.DayOfWeek == DayOfWeek.Monday) { 
     a = 8; 
    } else if (x.DayOfWeek == DayOfWeek.Saturday) { 
     a = 6; 
    } else if (x.DayOfWeek == DayOfWeek.Sunday) { 
     a = 7; 
    } else if (x.DayOfWeek == DayOfWeek.Thursday) { 
     a = 4; 
    } else if (x.DayOfWeek == DayOfWeek.Tuesday) { 
     a = 2; 
    } else if (x.DayOfWeek == DayOfWeek.Wednesday) { 
     a = 3; 

    DateTime y = x.AddDays(7 * n - a + 1); 
    MessageBox.Show(System.Convert.ToString(y)); 
    MessageBox.Show(System.Convert.ToString(y.AddDays(6)));
      

  6.   

    没想到
    http://www.developerfusion.com/utilities/convertvbtocsharp.aspx
    会把switch Case 翻译成 if ..else if 呵呵……
      

  7.   

    这个问题有歧义,第一周怎么算呢?比如2005.01.01是礼拜六,那么第一周的起止日期应该是那个呢?
    a) 2005.01.01 - 2005.01.07 (实打实的7天算一周)
    b) 2005.01.02 - 2005.01.08 (老外算法,周日为第一天)
    c) 2005.01.03 - 2005.01.06 (大陆算法,礼拜一算第一天)应该选那个呢?
      

  8.   

    解决
    int yy=2005,ww=21;
    DateTime dd=DateTime.Parse(yy.ToString().Trim()+"-01-01");
    bdate=dd.AddDays(1-((int)dd.DayOfWeek)+ww*7).ToShortDateString();