作者hannsg830 (冰)
看板Ajax
标题[ajax]请问计算时数
时间Fri Aug 10 17:38:28 2012
我更改了下面
function show_day() {
if (START_DATE.value=='')
{return false;}
if (END_DATE.value=='')
{return false;}
var date1 = DateUtils.toDate(START_DATE.value).format('yyyymmdd')
a=(date1.substring(4,6))
b=(date1.substring(0,4))
c=(date1.substring(6,8))
var start_time=new Date(b,a-1,c,START_TIME_HOURS.value,START_TIME_MIN.value,00)
var date2 = DateUtils.toDate(END_DATE.value).format('yyyymmdd')
aa=(date2.substring(4,6))
bb=(date2.substring(0,4))
cc=(date2.substring(6,8))
var end_time=new Date(bb,aa-1,cc,END_TIME_HOURS.value,END_TIME_MIN.value,00)
var time_hour_minute=0
var start_time1=new Date(b,a-1,c,08,30,00)
var end_time1=new Date(bb,aa-1,cc,17,30,00)
var start_time2=new Date(b,a-1,c,17,30,00)
var end_time2=new Date(b,a-1,c,08,30,00)
var time_minute=0
if(start_time<=start_time1 && end_time>=end_time1) {
alert("E")
time_hour_minute=(end_time-start_time)-(end_time-end_time1)-(start_time1-start_time)
time_hour_minute1=time_hour_minute
time_hour_minute=time_hour_minute/(1000*60*60)
time_minute=time_hour_minute1-(parseInt(time_hour_minute)*60*60*1000)
time_minute=time_minute/(60*1000)
if(time_hour_minute>24)
time_hour_minute=time_hour_minute-(parseInt((time_hour_minute/24)))*15
}
else if(start_time<=start_time1 && end_time<=end_time1) {
alert("D")
time_hour_minute=(end_time-start_time)-(start_time1-start_time)
time_hour_minute1=time_hour_minute
time_hour_minute=time_hour_minute/(1000*60*60)
time_minute=time_hour_minute1-(parseInt(time_hour_minute)*60*60*1000)
time_minute=time_minute/(60*1000)
if(time_hour_minute>24)
time_hour_minute=time_hour_minute-(parseInt((time_hour_minute/24)))*15
}
else if(start_time>=start_time1 && start_time<=start_time2 && end_time>=end_time1) {
alert("C")
debugger;
time_hour_minute=(end_time-start_time)-(end_time-end_time1)
time_hour_minute1=time_hour_minute
time_hour_minute=time_hour_minute/(1000*60*60)
time_minute=time_hour_minute1-(parseInt(time_hour_minute)*60*60*1000)
time_minute=time_minute/(60*1000)
if(time_hour_minute>24)
time_hour_minute=time_hour_minute-(parseInt((time_hour_minute/24)))*15
}
else if(start_time>=start_time1 && start_time<=start_time2 && end_time<=end_time1){
alert("B")
time_hour_minute=(end_time-start_time)
time_hour_minute1=time_hour_minute
time_hour_minute=time_hour_minute/(1000*60*60)
time_minute=time_hour_minute1-(parseInt(time_hour_minute)*60*60*1000)
time_minute=time_minute/(60*1000)
if(time_hour_minute>24)
time_hour_minute=time_hour_minute-(parseInt((time_hour_minute/24)))*15
}
else if (start_time>=start_time2){
if(end_time<end_time2)
{alert("AA")
var d=(parseInt(c)+1)
var start_time3=new Date(b,a-1,d,00,00,00)//隔天0时,当小於17:00大於8:00
var end_time3=new Date(bb,aa-1,cc,00,00,00)//结束当天0时
time_hour_minute=(end_time-start_time)-(start_time3-start_time)+(end_time-end_time3)
time_hour_minute/=(1000*24*60*60)//换算几天
time_hour_minute*=9
}
if(end_time>end_time2 && end_time<end_time1)
{alert("BB")
debugger;
var d=(parseInt(c)+1)
var start_time3=new Date(b,a-1,d,00,00,00)//隔天0时,当小於17:00大於8:00
var end_time3=new Date(bb,aa-1,cc,00,00,00)//结束当天0时
time_hour_minute=(end_time-start_time)-(start_time3-start_time)-(end_time-end_time3)
time_hour_minute/=(1000*24*60*60)//换算几天
time_hour_minute*=9
var time_diff=parseInt((end_time-end_time2)/(1000*60*60))//换算小时
time_hour_minute+=time_diff //加上最後一天时间
time_minute=((end_time-end_time2)-(time_diff*1000*60*60))/1000*60//换算分钟
}
else
{alert("CC")
time_hour_minute+=9
}
}
var i=(start_time.getDate())
var j=(end_time.getDate())
var ii=(start_time.getDay())
var jj=(end_time.getDay())
var start_time_diff_hour=0
var start_time_diff_minute=0
var count_day=0
for(k=i;k<=j;k++){
date=new Date('b','a-1',k)
if(date.getDay()==0 || date.getDay()==6)
count_day+=1
}
time_hour_minute=time_hour_minute-(count_day*9)
还是不行
十间计算
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.221.134.110
1F:→ j0214ack:你这样到底期待谁会把他看完啊... 08/12 13:52
2F:→ b12031106:你先不要管侦错什麽的 纯粹把逻辑理出来 08/13 21:56
3F:→ b12031106:因为这个纯粹是逻辑的问题 跟程式基本上没什麽关系 08/13 21:57
4F:→ b12031106:而且我很怀疑你到底知不知道自己在写什麽.. 08/13 22:00
5F:→ Canboo:把程序多拆成几个function,每个function都有他的目的 08/15 17:34
6F:→ Canboo:写一个函式先计算这个时段共有几个工作天 08/15 17:37
7F:→ Canboo:再写一个函式去处理头尾两天 08/15 17:37
8F:推 UniFish:你的写法好多地雷 XD 08/16 23:22