public static void meanMethod(int userId, DateTime newIntendingFinishTime)
    {
        //查询所有时间  
        List<Tasks> checkShowTasks = TasksManager.SelectAllTasksToIntendingFinishTime(userId, newIntendingFinishTime);
        foreach (Tasks t in checkShowTasks)
        {
            DateTime dtc = t.IntendingFinishTime;
            //如果时间在凌晨
            if (dtc.Hour < 9)
            {
                //掉用更新方法
                checkTime(userId, dtc);
            }
            //如果时间在上午
            else if (dtc.Hour > 8 && dtc.Hour < 12)
            {
                if (dtc.DayOfWeek.Equals(DayOfWeek.Sunday))
                {
                    //掉用更新方法
                    checkTime(userId, dtc);
                }
                else if (dtc.DayOfWeek.Equals(DayOfWeek.Saturday))
                {
                    //掉用更新方法
                    checkTime(userId, dtc);
                }
                else
                {
                    break;
                }
            }
            //如果时间在中午
            else if (dtc.Hour > 11 && dtc.Hour < 13)
            {
                //掉用更新方法
                checkTime(userId, dtc);
            }
            //如果时间在下午
            else if (dtc.Hour > 12 && dtc.Hour < 18)
            {
                if (dtc.DayOfWeek.Equals(DayOfWeek.Sunday))
                {
                    //掉用更新方法
                    checkTime(userId, dtc);
                }
                else if (dtc.DayOfWeek.Equals(DayOfWeek.Saturday))
                {
                    //掉用更新方法
                    checkTime(userId, dtc);
                }
                else
                {
                    break;
                }
            }
            //如果时间在下班以后
            else if (dtc.Hour > 17)
            {
                //掉用更新方法
                checkTime(userId, dtc);
            }
        }
    }public static void checkTime(int userId, DateTime IntendingDateTime)
{
         DateTime newIntendingFinishTime = IntendingDateTime;            //小时数
            int timeHours = 0;
            //天数
            int timeDay = 0;
            //需要的小时数
            int needTime = 0;            //为上班时间以前的情况--》9点以前
            if (newIntendingFinishTime.Hour < 9)
            {
                //为周日的情况
                if (newIntendingFinishTime.DayOfWeek.Equals(DayOfWeek.Sunday))
                {
                    //如果目标日期是上午(有三种情况0点、1点、2点)
                    if (newIntendingFinishTime.Hour < 3)
                    {
                        //得到的小时数
                        timeHours = newIntendingFinishTime.Hour + 9;
                        //增加的天数
                        timeDay = 1;
                        //需要的小时数
                        needTime = timeDay * 24 + timeHours;
                    }
                    //如果目标日期是下午(有五种情况3点、4点、5点、6点、7点)
                    else if (newIntendingFinishTime.Hour > 2 && newIntendingFinishTime.Hour < 8)
                    {
                        //得到的小时数
                        timeHours = newIntendingFinishTime.Hour + 10;
                        //增加的天数
                        timeDay = 1;
                        //需要的小时数
                        needTime = timeDay * 24 + timeHours;
                    }
                    //如果目标日期是第二天
                    else
                    {
                        //得到的小时数
                        timeHours = 9;
                        //增加的天数
                        timeDay = 2;
                        //需要的小时数
                        needTime = timeDay * 24 + timeHours;
                    }
                    //批量修改
                    int upateIrregular = TasksManager.UpdateAllTasksByTime(userId, needTime, newIntendingFinishTime);                    //查询所有时间
                    meanMethod(userId, newIntendingFinishTime);
                }
        }
}为什么没有达到我想要的效果,我想要的效果是,判断时间,如果不合法,所有的时间都推移
老大们。。这个问题 好几天了。。我也试了很多方法了。。拜托。。求助啊。。

解决方案 »

  1.   

    地址忘发了如果可以解决,这里的100分也给你。。帮帮我吧。。
    http://topic.csdn.net/u/20110115/16/54c87c2a-7857-48f9-af31-7c573abac929.html?seed=1910296358&r=71270701#r_71270701
      

  2.   


    插入一条数据(有任务需要时间)--》批量更新之后的数据(根据插入任务的需要时间)
    --》判断时间是否合法--》合法通过验证下一条,不合法修改当前任务批量更新之后的任务举一个例子(可能会比较晕啊,因为我也晕):
    第一条任务 起名为 A、第二条任务 起名为 B、三条任务 起名为 C、第四条任务 起名为 D在A B任务之间新增加一个任务, B、C、D 的时间都修改 如果B的时间到了周六则 B、C、D 天数都增加2又如果修改之后的C为周日 C、D天数都增加1最好能给我写一个例子,谢谢了。
      

  3.   

    你这个 是不是搞到数据库里边更简单些..比如: 4个项目 插入入数据库给个id号..然后开始你的检测..你时间推移的话 ,根据id号.去update就可以了..不知是否这个意思..