比如 我上班 8:01  考勤从8:30开始计算 下班5:20 计算成 5:00 
就是上班迟到30分钟以下都安30分钟计算 30分钟以上不到1小时 都按一小时计算  以此类推
下班正好相反不到30分钟的都不算 超过30分钟不到一小时的算30分钟 以此类推各位高手请问在c#里面代码怎么写呢 谢谢了!

解决方案 »

  1.   

    你专门弄一个表去存上下班时间。。然后用你的系统时间去减去上班或者下班时间。。得到的是一个时间差。。然后调用一个方法函数(PS:上班时间差用一个方法,下班时间差用一个方法)。。里面把你的逻辑写在里面。。比如定义你这个时间差不到半小时。。就返回一个时间差O(上班算法)。。然后以此类推。。明白否?
      

  2.   

    就几行代码就可以了DateTime GetTime(DateTime dateTrue, int intType)
            {
                DateTime dateCalculate=new DateTime();            if (intType == 0)        //上班
                {
                    if (dateTrue.Minute > 0 && dateTrue.Minute <= 30)
                        dateCalculate=DateTime.Parse(dateTrue.ToString("yyyy-MM-dd HH:30:00"));
                    if(dateTrue.Minute > 31 && dateTrue.Minute <= 59)
                        dateCalculate = DateTime.Parse(dateTrue.AddHours(1).ToString("yyyy-MM-dd HH:00:00"));
                }
                else                    //下班
                {
                    if (dateTrue.Minute > 0 && dateTrue.Minute <= 30)
                        dateCalculate = DateTime.Parse(dateTrue.ToString("yyyy-MM-dd HH:00:00"));
                    if (dateTrue.Minute > 31 && dateTrue.Minute <= 59)
                        dateCalculate = DateTime.Parse(dateTrue.AddHours(1).ToString("yyyy-MM-dd HH:30:00"));
                }            return dateCalculate;
            }