一个日期时间的循环语句

jakkyz 2016-12-16 11:52:51
求一段代码,目的就是求一段时间内一个人每天的上班时间和缺勤时间,目前的情况是公司规定
上班时间为08:00:00
下班时间为18:00:00
不考虑中午休息时间,
从请假系统里面取出某个人的请假开始日期时间和结束日期时间,如果该时间大于8:00则实际时间存入数据库,如果早于8:00则将08:00存入数据库,同样,晚上班下班时间也是如此,如果早于18:00则存入18:00。否则存入实际时间。
如果请假时间是两天天,那么第一天上班时间根据以上原则确定,下班时间肯定是18:00,同样第二天上班时间记为8:00,下班时间根据以上原则确定,如果请假三天,那么第一天和第三天根据以上原则,第二天上班时间08:00,下班时间18:00
我的代码如下,现在搞的思绪混乱了。
DateTime kssj = ‘2016-12-02 15:30:00’;//请假开始时间
DateTime jssj = ‘2016-12-08 10:30:00’;//请假结束时间
string ks = "08:00:00";//公司的上班时间
string js = "18:00:00";//公司的下班时间
while (jssj>=kssj)
{
if (kssj.Hour + kssj.Minute + kssj.Second < DateTime.Parse(ks).Hour + DateTime.Parse(ks).Minute + DateTime.Parse(ks).Second)
{
sjkssj = DateTime.Parse(kssj.ToString("yyyy-MM-dd") + " " + ks);
}
else
{
sjkssj = DateTime.Parse(kssj.ToString());
}
if (jssj.Hour + jssj.Minute + jssj.Second < DateTime.Parse(js).Hour + DateTime.Parse(js).Minute + DateTime.Parse(js).Second)
{
sjjssj = DateTime.Parse(jssj.ToString());
}
else
{
sjjssj = DateTime.Parse(kssj.ToString("yyyy-MM-dd") + " " + js);
}
insert into kaoqin (kssj,jssj) values (sjkssj,sjjssj)........//插入实际的开始时间和结束时间,按天插入
kssj = kssj.AddDays(1);
}
...全文
197 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
soubuzhe 2016-12-18
  • 打赏
  • 举报
回复
把逻辑拆分一下 判断第一天和最后一天 算出间隔天数 3-7日不用判断,直接默认为8点和18点
Anymore 2016-12-17
  • 打赏
  • 举报
回复
Datetime.conpareto() http://blog.csdn.net/u010771437/article/details/39894023

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧