1:完成的效果为:
要实现弹框中的提示和数值的填写,经过填写三次,系统利用填写的数值(输入年份、月份、天数)得出本年中的第几天。
2:第一步:
弹框以及弹框中提示的实现
第二步:
判断所输入的年份是否为闰年
第三步:
计算所输入内容的天数
3:第一步内容如图:
var year = prompt("请输入年份:")
year=parseInt(year)
var month = prompt("请输入月份:")
month=parseInt(month)
var day = prompt("请输入第几天:")
day=parseInt(day)
第二步内容如图:
function isLeapYear(year) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
return true
} else {
return false
}
}
if (isLeapYear(year)) {
}else{
}
第三步内容如图:
function isMonthDay(i) {
if (i == 2) {
return 29
}
if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12) {
return 31
}
if (i == 4 || i == 6 || i == 9 || i == 11) {
return 30
}
if(i==0){
return 0
}
}
var m1 = 0
for (var i = 0; i < month; i++) {
m1 = isMonthDay(i) + m1
}
sum=m1+day
document.write(year+"年"+month+"月"+day+"天"+"是本年的第"+sum+"天")
4:在完成代码中出现闰年判断后没有思路,怎样利用函数来实现把月份转为天数,同时也要考虑在转换的过程中要注意当天月份的不转换。利用函数把闰年判断后,再使用循环来实现每个月之间的相加,要注意当天月份不能相加,利用有参数有返回值的函数来实现每个月天数的实现。平年则在循环中加上一段代码实现二月份为28天的情况。
5:完整源码如图:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>使用函数完成给定日期2024 04 20 这一天是本年中的第几天</title>
<script>
function isLeapYear(year) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
return true
} else {
return false
}
}
function isMonthDay(i) {
if (i == 2) {
return 29
}
if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12) {
return 31
}
if (i == 4 || i == 6 || i == 9 || i == 11) {
return 30
}
if(i==0){
return 0
}
}
var m1 = 0
// 数据接收问题
var year = prompt("请输入年份:")
year=parseInt(year)
var month = prompt("请输入月份:")
month=parseInt(month)
var day = prompt("请输入第几天:")
day=parseInt(day)
// 判断是否为闰年
if (isLeapYear(year)) {
// 计算输入数值的天数
for (var i = 0; i < month; i++) {
m1 = isMonthDay(i) + m1
}
sum=m1+day
document.write(year+"年"+month+"月"+day+"天"+"是本年的第"+sum+"天")
} else {
for (var i = 0; i < month; i++) {
if (i==2){
m1-=1
}
m1 = isMonthDay(i) + m1
}
sum=m1+day
document.write(year+"年"+month+"月"+day+"天"+"是本年的第"+sum+"天")
}
</script>
</head>
<body>
</body>
</html>