我知道日期函数DatePart()可以获得该时日是第几周,但这个是以星期天作为一周的第一天开始算的,导致结果有所偏差,
我需要按星期一作为一周的第一天来算,求实现方法。请各位高手指导。

解决方案 »

  1.   

    DateAndTime.DatePart 方法 (String, Object, FirstDayOfWeek, FirstWeekOfYear)
    Interval
    类型: System.String 必选。 DateInterval 枚举值或 String 表达式,它表示要返回的日期/时间值部分。 DateValue
    类型: System.Object 必选。要计算的 Date 值。 DayOfWeek
    类型: Microsoft.VisualBasic.FirstDayOfWeek 可选。从 FirstDayOfWeek 枚举中选择的值,用于指定一周的第一天。如果未指定,则使用 FirstDayOfWeek.Sunday。
     WeekOfYear
    类型: Microsoft.VisualBasic.FirstWeekOfYear 可选。从 FirstWeekOfYear 枚举中选择的值,用于指定一年的第一周。如果未指定,则使用 FirstWeekOfYear.Jan1。 返回值
    类型: System.Int32 返回一个 Integer 值,该值包含给定 Date 值的指定部分。 
      

  2.   

    using Microsoft.VisualBasic; int week = Microsoft.VisualBasic.DateAndTime.DatePart("ww", DateTime.Now); 
      

  3.   

    某个日期是在一年中的第几周,有一个GregorianCalendar类是被大家所遗忘的,它可以指定哪一天作为一周的第一天using System.Globalization;GregorianCalendar gc = new GregorianCalendar();
    int weekOfYear = gc.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstDay, DayOfWeek.Monday);
      

  4.   

    记得有个SQL 语句 来着
      

  5.   

    原来方法还真不少,感谢大家热情帮助,小弟试了两个方法都是可行的:1.先判断该日期是星期几,如果非星期天,那么当前周数+1,由于2012年1月1日刚好是星期天,如果按照国际惯例,那么1月2日(星期一)所在的周应该是第1周,但如果以周一算起,那么1月2日就应该是第2周了,这方法对于2012年凑合能行;2.lxcnn的方法很厉害,非常符合,小弟谢了!