为了账号安全,请及时绑定邮箱和手机立即绑定

萌新求教!如何写好if来求工作时间谢谢哈~

萌新求教!如何写好if来求工作时间谢谢哈~

一只斗牛犬 2019-10-08 10:05:02
我想求取工作时间,对于小于8点的时间,统一输出8点00,对于时间是8:00-12:00,就输出输入的时间参数,对于时间是12:01-14:30的,就输出12:00,对于时间为14:31-17:30的,就输出输入的时间参数,对于17:30以后的时间,就输出17:30.我写了if语句,写得不好,请大家指教一下。谢谢。functionreturnRealWorkTime(t_hour,t_min){varcorrectHour=0,correctMin=0;if(t_hour
查看完整描述

2 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

首先,必须指出题主代码的错误:
类似1类似a=1的条件判断也是错误的,必须改为a==1的格式。
其次,按照题主的要求,判断一下当只有一位数字的时候,在前面增加一个字符0。
我没有对题主的代码作大的改动,只是简单的修复了BUG,代码如下:
functionreturnRealWorkTime(t_hour,t_min){
varcorrectHour=0,correctMin=0;
if(t_hour<8){correctHour=8;correctMin=0;}
elseif(8<=parseInt(t_hour)&&parseInt(t_hour)<12){correctHour=t_hour;correctMin=t_min;}
elseif(12<=parseInt(t_hour)&&parseInt(t_hour)<14){correctHour=12;correctMin=0;}
elseif(parseInt(t_hour)==14&&parseInt(t_min)<30){correctHour=12;correctMin=0;}
elseif(parseInt(t_hour)==14&&parseInt(t_min)>=30){correctHour=t_hour;correctMin=t_min;}
elseif(14elseif(parseInt(t_hour)==17&&parseInt(t_min)>30){correctHour=17;correctMin=30;}
else{correctHour=17;correctMin=30;}
if(correctHour<10)correctHour="0"+correctHour;
if(correctMin<10)correctMin="0"+correctMin;
returncorrectHour+':'+correctMin;
}
题主可以再看一下我优化的结果:
functionreturnRealWorkTime(h,m){
//把时间转化为一个数字,可以极大地方便计算。
letn=h+m/60;
//接下来只需要判断n的范围即可。
if(n<8)[h,m]=[8,0];
if(12<=n&&n<14.5)[h,m]=[12,0];
if(n>=17.5)[h,m]=[17,30];
//最后输出的时候,还是要判断一下是否小于10。
return`${h<10?`0${h}`:`${h}`}:${m<10?`0${m}`:`${m}`}`;
}
                            
查看完整回答
反对 回复 2019-10-08
?
精慕HU

TA贡献1845条经验 获得超8个赞

constreturnRealWorkTime=(h,m)=>{
constH=h<10?`0${h}`:h
constM=m<10?`0${m}`:m
if(H<8)return'8:00'
if(H<12)return`${H}:${M}`
if((H<15&&M<30)||H<14)return'12:00'
if((H<18&&M<30)||H<17)return`${H}:${M}`
return'17:30'
}
                            
查看完整回答
反对 回复 2019-10-08
  • 2 回答
  • 0 关注
  • 235 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信