我想求取工作时间,
对于小于8点的时间,统一输出8点00,
对于时间是8:00-12:00,就输出输入的时间参数,
对于时间是12:01-14:30的,就输出12:00,
对于时间为14:31-17:30的,就输出输入的时间参数,
对于17:30以后的时间,就输出17:30.
我写了if语句,写得不好,请大家指教一下。谢谢。
function returnRealWorkTime(t_hour,t_min) {
var correctHour=0,correctMin=0;
if(t_hour < 8){correctHour = 8;correctMin= 0;}
else if(8 <= parseInt(t_hour) < 12){correctHour = t_hour;correctMin= t_min;}
else if(12<= parseInt(t_hour) < 14){correctHour = 12;correctMin= 0;}
else if(parseInt(t_hour)=14 && parseInt(t_min) < 30){correctHour = 12;correctMin= 0;}
else if(parseInt(t_hour)=14 && parseInt(t_min) >= 30 ){correctHour = t_hour;correctMin= t_min;}
else if( 14<parseInt(t_hour)<=17 && parseInt(t_min) <= 30){correctHour = t_hour;correctMin= t_min;}
else if(parseInt(t_hour)=17 && parseInt(t_min) > 30){correctHour = 17;correctMin= 30;}
else {correctHour = 17;correctMin= 30;}
return correctHour + ':' + correctMin;
}
var x6 = returnRealWorkTime(14,15); //想输出12:00,但输出14:15
var x7 = returnRealWorkTime(12,39); //想输出12:00,但输出12:39
var x8 = returnRealWorkTime(18,39); //想输出17:30,但输出18:39
首先,必须指出题主代码的错误:
1 < a < 2
的条件判断是错误的,必须改为1 < a && a < 2
的格式。a = 1
的条件判断也是错误的,必须改为a == 1
的格式。其次,按照题主的要求,判断一下当只有一位数字的时候,在前面增加一个字符
0
。我没有对题主的代码作大的改动,只是简单的修复了 BUG,代码如下:
题主可以再看一下我优化的结果: