求一个function
我在C#里输入两个参数,一个是哪一年,一个是第几周,请问这周的星期一是几号
如输入"2008","5"-->输出"2008/01/28",暂不考虑润年。如果高人有润年的会额外给分。

解决方案 »

  1.   

    http://topic.csdn.net/t/20060721/16/4896343.html
      

  2.   

    如果一年不是从星期日或者星期一开始的,那么这个不满的1周算第一周吗?
    如果这个不完全的一周从星期4开始,那么查询xxxx,1将得不到结果,是不是这个意思?
      

  3.   

    public DateTime GetDate(int year, int week)
    {
        DateTime date = new DateTime( year, 1, 1 );
        DateTime m = date.AddDays( ( week - 1 ) * 7 );
        int w = (int)( DayOfWeek.Monday - m.DayOfWeek );
        if ( w == 1 )
        {
            w = -6;
        }
        return m.AddDays( w );
    }
      

  4.   


    //判断是否闰年 
           bool isLeapYear(int year){
               return year%4==0&&year%100!=0||year%400==0;
           }
           //返回当前年份天数 
           int getYearDays(int year){
               return isLeapYear(year)?366:365;
           }
           //返回当前年一月一日的星期 
           int getYearWeek(int year){
               int i,days=0,week;
               if(year>=2000){
                   for(i=2000;i<year;i++) days+=getYearDays(i);
                   week = (days+6)%7;          
               }else{
                   for(i=year;i<2000;i++) days+=getYearDays(i); 
                   week = 6-days%7;
               }  
               return week;
           }
           //返回每月天数 
           int MonthDays(int year,int month){
               switch(month){
                   case 1:
                   case 3:
                   case 5:
                   case 7:
                   case 8:
                   case 10:
                   case 12:         
                         return 31;
                   case 4:
                   case 6:
                   case 9:
                   case 11:
                        return 30;
                   case 2:
                        return isLeapYear(year)?29:28; 
                   default :
                       return -1;
               }
           }
           //返回当前年的当前月的天数
           int getMonthWeek(int year,int month){
               int i,days=0;
               for(i=1;i<month;i++){
                   days+=MonthDays(year,i);                 
               }
               return (getYearWeek(year)+days)%7;
           }
           //返回当前日期星期 
           int getDayWeek(int year,int month,int day){
               return (getMonthWeek(year,month)+day-1)%7;
           }  
    直接调用getDayWeek(int,int,int)就得到星期。
      

  5.   


            private DateTime getDateOfWeek(int year,int week)
            {
                DateTime dt = new DateTime(year, 1, 1);
                return dt.AddDays((week - 1) * 7 - (int)dt.DayOfWeek + 1);
            }