老师帮忙看一下,谢谢

来源:5-10 编程练习

qq_慕尼黑1376657

2019-05-29 21:15:42

<!DOCTYPE html>

<html lang="en">


<head>

<meta charset="UTF-8">

<title>员工合同到期时间</title>

</head>


<body>

<script>

//1.先做3个弹窗,获取员工的入职日期

var year = prompt('请输入入职年份'),

month = prompt('请输入入职月份'),

day = prompt('请输入入职日期');

//2.创建一个函数接收弹窗数据

function funName() {

//3.将获取的员工入职日期填写进日期对象

// (因为获取到的是string类型的字符串,所以要先将字符串用parseFloat强制转换成Number然后进行运算)

var getDate = new Date(parseFloat(year)+3, month, day,0,0,0);

//4.将填写好的日期对象的年月日提取出来

var l_year=getDate.getFullYear();

var l_month=getDate.getMonth();

var l_date=getDate.getDate();

// document.write(getDate);

//4.输出到页面

document.write('该员工入职时间是:' + year + '-' + month + '-' + day + '<br/>');

document.write('该员工合同到期时间是:' + l_year + '-' + l_month + '-' + l_date);

}

funName(year, month, day);

</script>

</body>


</html>


写回答

2回答

好帮手慕夭夭

2019-05-31

你好同学,因为只有使用加运算的时候,字符串才会与其他类型默认进行字符串拼接。其他运算的时候,会把字符串转换为数值类型进行运算哦。

祝学习愉快 ,望采纳。

0

好帮手慕夭夭

2019-05-30

你好同学,因为月份返回的是0-11,如果输入的日期为12月,那么会计算到次年0月,也就是实际的一月,如下:

http://img.mukewang.com/climg/5cef4ab4000125e503540066.jpg

所以在设置月份的时候,先减去1,让日期正常能够计算到三年后,然后再输出的时候加上1,让月份正常显示。如下:

http://img.mukewang.com/climg/5cef4ba30001b69606960352.jpg

祝学习愉快 ,望采纳。

0
hq_慕尼黑1376657
h 老师,为什么month可以直接减一,year就不能直接加3呢?而是要用parseFloat转化后呢?明明他们都是string类型的啊
h019-05-31
共1条回复

0 学习 · 40143 问题

查看课程