公司上班时间为08:30,下班时间为17:30
周六周日休息某人请假从2005-12-05 16:30:00到2005-12-13 08:30:00请假
正确的请假天数和时间结果应该是5天1小时我如何通过两个日期值比较最终去除周六周日和他私人时间再加上12月05日提前一小时下班得出最终结果啊。
周六周日休息某人请假从2005-12-05 16:30:00到2005-12-13 08:30:00请假
正确的请假天数和时间结果应该是5天1小时我如何通过两个日期值比较最终去除周六周日和他私人时间再加上12月05日提前一小时下班得出最终结果啊。
解决方案 »
- myeclipse中各个位置设置的jdk有何区别和联系
- jstl在页面循环一个Map,key是一个object,value是一个List(object)
- 问一个简单的问题,高手勿喷
- 如何在修改页面中,让某些字段只能读不能写
- static变量的问题。
- Java Sokcet通信阻塞,如何让程序等待某一段时间以后发送数据?求求求求各位了!
- 要做个社区,有积分悬赏功能,顺便学学别人的积分功能怎么搞的,做过的说说思路吧
- 在98下如何设置tomcat5.0.24,急啊!!!!!
- ActionForm的重用性带来的线程问题
- Spring Struts2整合 注解无法生效的问题
- 弱弱的问一句,是不是用作javabean的java程序前面必须加package啊?
- 利用jstl读取远程rss
1:计算出两个日期(去掉时间)间除去周末的天数;d1
2:计算开始日期这一天的上班时间;t1
3:计算结束日期这一天的请假时间;t2
4:总的请假时间=
if (t1 > t2)
{
return (d1-1)天 (9+t2-t1)小时
}
else
{
return d1天 (t2-t1)小时
}
判断每天的小时分钟,甚至秒数。
周六周日算0秒。
得到请假的总秒数。换算成天、时、分、秒。程序:
int 请假总秒数 = 0;
Date 开始日期 = 请假开始的日期;
while( !请假结束的日期之后了 )
{
if(!是周末)
{
请假总秒数 += 当前的请假秒数;
} 日期往后推一天;
}
换算(请假总秒数);
这个本应该是5天1小时,但是按照susu_0807(苏苏)是不对的。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><%@page import="java.util.*" %>
<%
Date date1 = new Date(2005,12,5);
Date date2 = new Date(2005,12,13);
long day = (date2.getTime()-date1.getTime())/1000/86400+1;
if(day>7){
day = day-day/7*2;
}
//8:30-17:30,转化为分钟,*60
long time1 = 510; //8*60+30
long time2 = 1050;
long time_begin = 990;
long time_end = 510;
long time_purl = 0;
if(time_begin>time1 && time_begin<time2){
time_purl = (time2 - time_begin)/60 ;
day=day-1;
}
if(time_end>time1 && time_end<time2){
time_purl = +(time2 - time_begin)/60 ;
day=day-1;
}else if(time_end<=time1){
day=day-1;
}
out.println(day+"天"+time_purl+"小时");
%>
if(请假日!=周末){
请假天数++;
}
}2、计算时、分、秒
计算请假当天请假 N秒;
计算返工当天 M秒;3、相加
通过这个方法你可以过滤掉周末,剩下的就是对工作时间的判断了。你可以对打卡的时间formatte一下,以yyyy-mm-dd hh:mm:ss的形式保存
过滤掉周末后就是判断hh:mm:ss是否在工作时间区间的问题了。
应该不会很难
Date 开始日期 = 请假开始的日期;
while( !请假结束的日期之后了 )
{
if(!是周末)
{
请假总秒数 += 当天的请假秒数(被计算的那天);
} 日期往后推一天;
}
换算(请假总秒数);
=============================
当天的请假秒数(被计算的那天);是个方法,可以实现很复杂的逻辑。
包括节假日,甚至是农历的节假日也能算。
通常,只要计算一个月的1号到该月的最后一天就可以得知该月的请假时间了。
得出的请假结果应该是5天50分钟,而您的结果是5天1小时