1-11作业问题:

1-11作业问题:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JavaScript</title>
</head>
<body>
<script type="text/javascript">

function birthdayYear(){
var year;
while(1){
year=prompt("请输入您的出生年份:");
if(isNaN(year)){
alert("请输入数字年份");
continue;
}
else if (year.length!=4) {
alert("请输入四位数字的年份");
continue;
};
return year;
}
}

function birthdayMonth(){
var month;
while(2){
month=prompt("请输入您的出生月份:");
if(isNaN(month)){
alert("请输入数字月份");
continue;
}
else if (month.length!=2||month>=13||month<0) {
alert("请输入两位数字有效月份");
continue;
};
return month;
}

}

function birthday(){
var year,month,day;

year=birthdayYear();

month=birthdayMonth();
while(3){
day=prompt("请输入您的出生日期:");
if(isNaN(day)){
alert("请输入数字的日期");
continue;
}
else if (day.length!=2) {
alert("请输入两位数字的日期");
continue;
};

switch(month){
case "01":
{if(day>=1&&day<=31){
return day;
}else {alert("请输入两位数字有效日期");
continue;
}
}break;
case "03":
{if(day>=1&&day<=31){
return day;
}else {alert("请输入两位数字有效日期");
continue;
}
}break;
case "05":
{if(day>=1&&day<=31){
return day;
}else {alert("请输入两位数字有效日期");
continue;
}
}break;
case "07":
{if(day>=1&&day<=31){
return day;
}else {alert("请输入两位数字有效日期");
continue;
}
}break;
case "08":
{if(day>=1&&day<=31){
return day;
}else {alert("请输入两位数字有效日期");
continue;
}
}break;
case "10":
{if(day>=1&&day<=31){
return day;
}else {alert("请输入两位数字有效日期");
continue;
}
}break;
case "12":
{if(day>=1&&day<=31){
return day;
}else {alert("请输入两位数字有效日期");
continue;
}
}break;
case "04" :{
if (day>=1&&day<=30) return day;
else{
alert("请输入两位数字有效日期");
continue;
}
}break;
case "06" :{
if (day>=1&&day<=30) return day;
else{
alert("请输入两位数字有效日期");
continue;
}
}break;
case "09" :{
if (day>=1&&day<=30) return day;
else{
alert("请输入两位数字有效日期");
continue;
}
}break;
case "11" :{
if (day>=1&&day<=30) return day;
else{
alert("请输入两位数字有效日期");
continue;
}
}break;

case "02":
{if((year%4==0)&&(year%400==0)&&(year%3200!==0)&&(day>=1&&day<=29))
return day;
else if (day>=1&&day<=28) return day;
else{
alert("请输入有效日期");
continue;
}
};
}
}

}

var years,months,days;
years=birthdayYear();
months=birthdayMonth();
days=birthday();
document.write("您的出生日期是"+years+"年"+months+"月"+days+"日");

</script>
</body>
</html>

为什么我的代码中brithday函数调用其他两个函数并不是调用返回值,而是调用了一整个函数;还有再brithday函数中能不能有合并的方法?

求高手救命!!!我已经喊 破喉咙了,还有之前的一个问题也是加急!

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
怎么都被占用了呢 2017-06-28 19:00:20

你的思路有些混乱,代码也是繁琐。可以参考该思路:首先声明3个全局变量用来接收年月日的值,第二步判断格式,将正确格式的值赋值给全局变量,第三步计算日期,可以使用switch实现:

1、当出生月分是1时,出生的第几天就是用户输入的日期;

2、当月份是2时,出生的第几天就是1月份的天数加上2月份出生的日期,以此类推。

2月可以先设为28天,判断过闰年之后,总天数加1


  • 提问者 weibo_丿___Pan_0 #1
    你的意思是日期的输入范围是1-365或者366天,然后按输入的数字来归进哪个月份? 另外我这代码中switch。。。case。。。能不能合并来写,比如1,3,5,7,8,10,12这些代码都是一样的,合并的格式是什么?
    2017-06-29 11:34:17
  • 提问者 weibo_丿___Pan_0 #2
    哦。。。。好吧,知道了~~
    2017-06-29 12:19:07
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师