版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_41554071/article/details/89386016
思路
1.输入年份需要判断区别闰年、平年;
2.月份只能输入1-12的正整数;
3.日期需要根据年份和月份共同来确定判断正确性的条件:
- 若是闰年则判断是否是2月,是则设置日期限制条件为1-29的数字;
- 若是平年,则根据输入的月份设置对于的日期限制条件,如1月则对应日期限制条件为1-31的数字;
基于以上分析,把每月的天数设置为一个数组dayArr,方便调用和赋值。
代码实现
这里只贴出了JavaScript部分的代码,html页面没有写代码,只有最基本的body、html标签便没有贴出。
function get_year()
{
var year = prompt("请输入你的出生年份");
return year;
}
function get_month()
{
var month = prompt("请输入你的出生月份");
return month;
}
function get_date()
{
var date = prompt("请输入你的出生日期");
return date;
}
function myFun()
{
var dayArr = [31,28,31,30,31,30,31,31,30,31,30,31];//存储每月有多少天
var y = get_year();
if((y % 4 == 0 && y % 100 != 0) || y % 400 == 0)
{
dayArr[1] = 29;
}//判断是否是闰年,如果是则2月改为29天。
//月份输入正确性判断
var m = get_month();
while(m > 12||m < 1)
{
alert("月份只能为1-12的整数!");
m = get_month();
}
//日期输入正确性判断
var d = get_date();
while(d < 1||d > dayArr[m-1])
{
alert(m+"月没有"+d+"号,请输入1-"+dayArr[m-1]+"的整数!");
d = get_date();
}
//计算天数,m月出生则循环到m-1月,最后在加上m月的天数也就是d。
var i, sum = 0;
for(i = 1; i <= m-1; i++)
{
sum += parseInt(dayArr[i-1]);
}
sum += parseInt(d);
alert("您的生日在"+ y +"年是第" + sum + "天。");
}
myFun();