多谢,其实我是想用代码写一个算法,不是用DayofWeek,是我没有说清楚:)

解决方案 »

  1.   

    因为我一个同事问我用VB怎么写,可是我只知道C#中的写法,不知道VB中的函数是什么怎么写,所以就想写一个算法出来.
      

  2.   

    这是我以前用C写的一个小程序,供参考:static const day_tab[2][13] = {
      {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
      {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
    };// Convert 19800101 - 21581231 to 1 - 65379
    // Return 0 on error
    unsigned date2day(long rq)
    {
      unsigned year  = rq / 10000L;
      unsigned month = rq / 100L % 100L;
      unsigned day   = rq % 100L;
      unsigned i, leap;
      if (year <= 79) year += 2000;
      if (year >= 80 && year <= 99) year += 1900;
      if (year < 1980 || year > 2158) return(0);
      if (month < 1 || month > 12) return(0);
      leap = year % 4 == 0 && year % 100 != 0 || year % 400 == 0;
      if (day < 1 || day > day_tab[leap][month]) return(0);
      day += (year - 1980) * 365;
      for (i = 1980; i < year; i++)
        day += i % 4 == 0 && i % 100 != 0 || i % 400 == 0;
      for (i = 1; i < month; i++)
        day += day_tab[leap][i];
      return day;
    }// Return 1 - 7 for Monday to Sunday
    int  week(unsigned days)
    {
      return days % 7 + 1;  // days == 1 for 1980.01.01 Tuesday
    }
      

  3.   

    Dim i As Integer
    i = DateTime.Weekday(DateTime.Now)
    If i = 1 Then
      MsgBox "星期日"
    Else
      MsgBox "星期" & Str$(i - 1)
    End IfVB6.0的写法。
      

  4.   

    t.DatOfWeek.ToString
    书上是这么写的.