现在做一个月工作上报功能,每月月末提报本部门下一个月的重点工作计划  系统开放时间为每月的最后一周,过期自动关闭(也就是说每月的最后一周出现“新建”按钮)
每月年初也可以出现“新建”按钮,因为有可能有漏报的
求助大侠!!!

解决方案 »

  1.   

     protected void Page_Load(object sender, EventArgs e)
        {
            DateTime firstday;//最后一周的第一天
            DateTime endday;//最后一周的最后一天
           DateTime dtlast=GetLastDayOfMonth(DateTime.Now.Year, DateTime.Now.Month);//获得当前月份的最后一天
           switch (dtlast.DayOfWeek)
           {
               case DayOfWeek.Friday:
                   firstday = dtlast.AddDays(-4);
                   endday = dtlast.AddDays(2);
                   break;
               case DayOfWeek.Monday:
                   firstday = dtlast;
                   endday = dtlast.AddDays(6);
                   break;
               case DayOfWeek.Saturday:
                   firstday = dtlast.AddDays(-5);
                   endday = dtlast.AddDays(1);
                   break;
               case DayOfWeek.Sunday:
                   firstday = dtlast.AddDays(-6);
                   endday = dtlast;
                   break;
               case DayOfWeek.Thursday:
                   firstday = dtlast.AddDays(-3);
                   endday = dtlast.AddDays(3);
                   break;
               case DayOfWeek.Tuesday:
                   firstday = dtlast.AddDays(-1);
                   endday = dtlast.AddDays(5);
                   break;
               case DayOfWeek.Wednesday:
                   firstday = dtlast.AddDays(-2);
                   endday = dtlast.AddDays(4);
                   break;
               
           }
           if (DateTime.Now > firstday && DateTime.Now < endday)//在一个月最后一天所在周的时间范围内
           {
               //按钮便显示
           }
           else
           {
               //按钮隐藏
           }
          
        }
        private DateTime GetLastDayOfMonth(int Year, int Month)
        {
            //这里的关键就是 DateTime.DaysInMonth 获得一个月中的天数
            int Days = DateTime.DaysInMonth(Year, Month);
            return Convert.ToDateTime(Year.ToString() + "-" + Month.ToString() + "-" + Days.ToString());    }
      

  2.   


    哥们人才啊。 Timer...
      

  3.   


    你用TIMER不觉得太浪费啊?没大明白楼主说的本月第一周到底是啥意思,从第一个周一算还是从1号算?如果是1号算的话,就得出本月1号是星期几,是周末的话就下一周开始的号+21就可以得出最后一个星期的日期!用TIMESPAN!不是周末的话就从本周开始TIMESPAN,每次循环加1,到了礼拜天就+21!如果要是从第一个周一开始算的话那就更容易了,得到本月1号是周几,然后TIMESPAN 1天,只要是周末就+21天,得到的日期+1就是最后一周的开始!月初得看你怎么安排,是第一个周还是几天什么的反正道理都一样  你自己推导推导!没IDE,不写代码了!