出现未知的错误,有点懵,不知道怎么怎么改

出现未知的错误,有点懵,不知道怎么怎么改

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<title></title>

<script type="text/javascript">

var year=prompt("请输入您的出生年份:");

var month=prompt("请输入您的出生月份:");

var Date=prompt("请输入您的出生日期:");

//判断年份,年份正确就调用月份函数,不对则提示重新输入

function isYear(){

if(year.length==4)

{

if((year%4==0&&year%100!=0)||year%400==0)

    return isMonth1(month);

else

   return isMonth2(month);

}

else

  return year=prompt("您输入的不正确,请重新输入您的出生年份");

 }

isYear(year);

//月份函数,判断输入的月份是否正确,正确则调用日期函数,否则提示重新输入月份

function isMonth1(){

    switch(month)

    {

    case 1:return isDate1(1,Date);

    break;

    case 2:return isDate1(2,Date);

    break;

    case 3:return isDate1(3,Date);

    break;

    case 4:return isDate1(4,Date);

    break;

    case 5:return isDate1(5,Date);

    break;

    case 6:return isDate1(6,Date);

    break;

    case 7:return isDate1(7,Date);

    break;

    case 8:return isDate1(8,Date);

    break;

    case 9:return isDate1(9,Date);

    break;

    case 10:return isDate1(10,Date);

    break;

    case 11:return isDate1(11,Date);

    break;

    case 12:return isDate1(12,Date);

    break;

       default: return month=prompt("请重新输入月份:")

    break;

    }

}

             isMonth1(month);

             function isMonth2(){

    switch(month)

    {

    case 1:return isDate2(1,Date);

    break;

    case 2:return isDate2(2,Date);

    break;

    case 3:return isDate2(3,Date);

    break;

    case 4:return isDate2(4,Date);

    break;

    case 5:return isDate2(5,Date);

    break;

    case 6:return isDate2(6,Date);

    break;

    case 7:return isDate2(7,Date);

    break;

    case 8:return isDate2(8,Date);

    break;

    case 9:return isDate2(9,Date);

    break;

    case 10:return isDate2(10,Date);

    break;

    case 11:return isDate2(11,Date);

    break;

    case 12:return isDate2(12,Date);

    break;

       default: return month=prompt("请重新输入月份:")

    break;

    }

}

             isMonth2(month);

             //计算闰年的函数

   function isDate1(a,b){

switch(a)

    {

    case 1:

    if(b<=31&&b>=0)

      return document.write("您的生日是在"+year+"的第"+b+"天");

    else 

      return Date=prompt("您输入的日期不正确");

    break;

   

    case 2:

    if(b<=29&&b>=0)

    return document.write("您的生日是在"+year+"的第"+"31+b"+"天");

    else

      return Date=prompt("您输入的日期不正确");

    break;

   

    case 3:

    if(b<=31&&b>=0)

      return document.write("您的生日是在"+year+"的第"+"60+b"+"天");

    else 

      return Date=prompt("您输入的日期不正确");

    break;

   

    case 4:

    if(b<=30&&b>=0)

      return document.write("您的生日是在"+year+"的第"+"91+b"+"天");

    else 

      return Date=prompt("您输入的日期不正确");

    break;

   

    case 5:

    if(b<=31&&b>=0)

      return document.write("您的生日是在"+year+"的第"+"121+b"+"天");

    else 

      return Date=prompt("您输入的日期不正确");

    break;

   

    case 6:

    if(b<=30&&b>=0)

      return document.write("您的生日是在"+year+"的第"+"152+b"+"天");

    else 

      return Date=prompt("您输入的日期不正确");

    break;

   

    case 7:

    if(b<=31&&b>=0)

      return document.write("您的生日是在"+year+"的第"+"182+b"+"天");

    else 

      return Date=prompt("您输入的日期不正确");

    break;

   

    case 8:

    if(b<=31&&b>=0)

      return document.write("您的生日是在"+year+"的第"+"213+b"+"天");

    else 

      return Date=prompt("您输入的日期不正确");

    break;

   

    case 9:

    if(b<=30&&b>=0)

      return document.write("您的生日是在"+year+"的第"+"244+b"+"天");

    else 

      return Date=prompt("您输入的日期不正确");

    break;

   

    case 10:

    if(b<=31&&b>=0)

      return document.write("您的生日是在"+year+"的第"+"274+b"+"天");

    else 

      return Date=prompt("您输入的日期不正确");

    break;

   

    case 11:

    if(b<=30&&b>=0)

      return document.write("您的生日是在"+year+"的第"+"305+b"+"天");

    else 

      return Date=prompt("您输入的日期不正确");

    break;

   

    case 12:

    if(b<=31&&b>=0)

      return document.write("您的生日是在"+year+"的第"+"335+b"+"天");

    else 

      return Date=prompt("您输入的日期不正确");

    break;

}

    isDate1(month,Date);

    //计算平年的函数

function isDate2(a,b){

switch(a)

    {

    case 1:

    if(b<=31&&b>=0)

      return document.write("您的生日是在"+year+"的第"+b+"天");

    else 

      return Date=prompt("您输入的日期不正确");

    break;

   

    case 2:

    if(b<=28&&b>=0)

    return document.write("您的生日是在"+year+"的第"+"31+b"+"天");

    else

      return Date=prompt("您输入的日期不正确");

    break;

   

    case 3:

    if(b<=31&&b>=0)

      return document.write("您的生日是在"+year+"的第"+"59+b"+"天");

    else 

      return Date=prompt("您输入的日期不正确");

    break;

   

    case 4:

    if(b<=30&&b>=0)

      return document.write("您的生日是在"+year+"的第"+"90+b"+"天");

    else 

      return Date=prompt("您输入的日期不正确");

    break;

   

    case 5:

    if(b<=31&&b>=0)

      return document.write("您的生日是在"+year+"的第"+"120+b"+"天");

    else 

      return Date=prompt("您输入的日期不正确");

    break;

   

    case 6:

    if(b<=30&&b>=0)

      return document.write("您的生日是在"+year+"的第"+"151+b"+"天");

    else 

      return Date=prompt("您输入的日期不正确");

    break;

   

    case 7:

    if(b<=31&&b>=0)

      return document.write("您的生日是在"+year+"的第"+"181+b"+"天");

    else 

      return Date=prompt("您输入的日期不正确");

    break;

   

    case 8:

    if(b<=31&&b>=0)

      return document.write("您的生日是在"+year+"的第"+"212+b"+"天");

    else 

      return Date=prompt("您输入的日期不正确");

    break;

   

    case 9:

    if(b<=30&&b>=0)

      return document.write("您的生日是在"+year+"的第"+"243+b"+"天");

    else 

      return Date=prompt("您输入的日期不正确");

    break;

   

    case 10:

    if(b<=31&&b>=0)

      return document.write("您的生日是在"+year+"的第"+"273+b"+"天");

    else 

      return Date=prompt("您输入的日期不正确");

    break;

   

    case 11:

    if(b<=30&&b>=0)

      return document.write("您的生日是在"+year+"的第"+"304+b"+"天");

    else 

      return Date=prompt("您输入的日期不正确");

    break;

   

    case 12:

    if(b<=31&&b>=0)

      return document.write("您的生日是在"+year+"的第"+"334+b"+"天");

    else 

      return Date=prompt("您输入的日期不正确");

    break;

   

}

       isDate2(month,Date);

       

</script>

</head>

<body>

nihao

</body>

</html>


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

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

1回答
好帮手慕糖 2017-10-18 14:27:40

你好,1、报错是因为函数isDate1()与isDate2()后面均少一个}

2、年月日输入的是字符串,但是在switch语句中判断的时候是字符串,所以这里可取整下,例:

var month = parseInt(prompt("请输入您的出生月份:"));
var te = parseInt(prompt("请输入您的出生日期:"));

3、下面的计算以及输出思路有些混乱,且如下,"59+b"值字符串会原样输出的哟。

document.write("您的生日是在" + year + "的第" + "59+b" + "天");

4、isMonth2(month);与isMonth1(month);都调用了,这样的话,不管输入的是平年还是闰年都会执行一遍的哟,建议:把闰年的判断与之分离开。

5、这里Date为关键字,建议:最好可以换一个变量。

6、没有闰年的判断是没有办法自动判断闰年的哟,判断年份是否是闰年,需满足下列条件之一(两个条件同时存在,一个为真即可):

(1)    年份能整除4但是不能整除100

(2)    年份能整除400

7、建议:把日期的判断与天数的计算输出分开,先不判断日期,只计算天数与最后的输出,正确输入后在尝试添加日期判断。

祝学习愉快~

  • 提问者 慕盖茨0172929 #1
    为什么isMonth2(month);与isMonth1(month);都调用了,不管输入的是平年还是闰年都会执行一遍?
    2017-10-18 22:08:20
  • 提问者 慕盖茨0172929 #2
    1。如果开始就把输入的字符串取整,那我后面的对年份的求长度的操作是不是就要出错了?在不先对输入的字符串 取整的前提下,我将switch下面下面判断的月份加引号变成字符串的做法可以吗?例如 case “1”:
    2017-10-18 22:14:33
  • 正在想名字呢 回复 提问者 慕盖茨0172929 #3
    执行顺序有关,会发生覆盖。祝学习愉快!
    2017-10-19 19:29:41
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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