Javascript不适用条件?

Javascript不适用条件?,javascript,Javascript,编辑:我已将代码更新为新代码。一切都很好,除了一行把那个月搞得一团糟,就是这一行: 如果((q28)&(m==2)&(q%4==0)&(!(q%100))) 所以我终于让我的计算器开始工作了,尽管它不符合我的条件。例如,如果我输入9月40日,它会给我一天的时间。显然,这不应该发生。知道我哪里出错了吗 谢谢 `函数handleInput(表单){ 试一试{ var form=document.getElementById(“时间格式”) var strYears=form.years.value;

编辑:我已将代码更新为新代码。一切都很好,除了一行把那个月搞得一团糟,就是这一行: 如果((q<1|q>28)&(m==2)&(q%4==0)&(!(q%100)))

所以我终于让我的计算器开始工作了,尽管它不符合我的条件。例如,如果我输入9月40日,它会给我一天的时间。显然,这不应该发生。知道我哪里出错了吗

谢谢

`函数handleInput(表单){ 试一试{ var form=document.getElementById(“时间格式”)

var strYears=form.years.value;
var strMonths=form.months.value;
var strDays=form.days.value;
变量Y=parseInt(strYears);
var m=parseInt(strMonths);
var q=parseInt(标准日);
var h=“”;
var输出=”;
if(isNaN(Y))
抛出(“输入错误。年份不是数字。”);
如果(Y<0 | | Y>9999)
抛出“输入不正确。年份超出预期范围(0-9999)。”;
if(isNaN(m))
抛出“输入错误。月份不是数字。”;
如果(m<1 | | m>12)
抛出“输入错误。月份超出预期范围(1-12)”;
if(isNaN(q))
抛出“输入错误。天数不是数字。”;
如果((q<1 | q>31)和(m==1 | m==3 | m==5 | m==7 | m==8 | m==10 | m==12))
抛出“输入错误。天数超出预期范围(1-31)”;
如果((q<1 | | q>30)和&(m==4 | | m==6 | | m==9 | | m==11))
抛出“输入错误。天数超出预期范围(1-30)”;
如果((q<1|q>28)&(m==2)&(q%4==0)&(!(q%100)))
抛出“输入错误。天数超出预期范围(1-28)”;
如果(m==1 | | m==2){
m=m+12;
Y=Y-1;
}
h=(q+数学层(13*(m+1)/5)+Y+数学层(Y/4)
-数学楼层(Y/100)+数学楼层(Y/400))%7;
{
如果(h==0)
h=“星期六”;
如果(h==1)
h=“星期日”;
如果(h==2)
h=“星期一”;
如果(h==3)
h=“星期二”;
如果(h==4)
h=“星期三”;
如果(h==5)
h=“星期四”;
如果(h==6)
h=“星期五”;
var输出=h;
document.getElementById(“输出”).innerHTML=output;
}
}
捕获(错误){
document.getElementById(“输出”).innerHTML=“错误:”+错误;
}
}`
这应该可以正常工作

function handleInput(form) {
    try {


            var form = document.getElementById("timeForm");

            var strYears = form.years.value;
            var strMonths = form.months.value;
            var strDays = form.days.value;
            var Y = parseInt(strYears);
            var m = parseInt(strMonths);
            var q = parseInt(strDays);
            var h = "";
            var output = "";

            if (isNaN(Y))
            throw ("Incorrect input. Years is not a number.");

            if (Y < 0 || Y > 9999)
            throw "Incorrect input. Years is out of expected range (0-9999).";

            if (isNaN(m))
            throw "Incorrect input. Months is not a number.";

            if (m < 1 || m > 12)
            throw "Incorrect input. Months is out of expected range (1-12).";

            if (isNaN(q))
            throw "Incorrect input. Days is not a number.";

            if ((q < 1 || q > 31) && (m == 1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12))
            throw "Incorrect input. Days is out of expected range (1-31).";

            if ((q < 1 || q > 30) && (m == 4 || m== 6 || m== 9 || m==11))
            throw "Incorrect input. Days is out of expected range (1-30).";

            if ((q < 1 || q > 28) && (m == 2)) 
            throw "Incorrect input. Days is out of expected range (1-28).";

            if (m == 1 || m == 2) {
                m = m + 12;
                Y = Y - 1;
                }

                h = (q + Math.floor(13 * (m + 1) / 5) + Y + Math.floor(Y / 4)
                - Math.floor(Y / 100) + Math.floor(Y / 400)) % 7;
                {

            if (h == 0)
                h = "Saturday";
            if (h == 1)
                h = "Sunday";
            if (h == 2)
                h = "Monday";
            if (h == 3)
                h = "Tuesday";
            if (h == 4)
                h = "Wednesday";
            if (h == 5)
                h = "Thursday";
            if (h == 6)
                h = "Friday";



            var output = h;
                document.getElementById("output").innerHTML = output;

                }
        }
        catch(error){
            document.getElementById("output").innerHTML = "Error: " + error;
                    }
    }
函数句柄输入(表单){
试一试{
var form=document.getElementById(“时间格式”);
var strYears=form.years.value;
var strMonths=form.months.value;
var strDays=form.days.value;
变量Y=parseInt(strYears);
var m=parseInt(strMonths);
var q=parseInt(标准日);
var h=“”;
var输出=”;
if(isNaN(Y))
抛出(“输入错误。年份不是数字。”);
如果(Y<0 | | Y>9999)
抛出“输入不正确。年份超出预期范围(0-9999)。”;
if(isNaN(m))
抛出“输入错误。月份不是数字。”;
如果(m<1 | | m>12)
抛出“输入错误。月份超出预期范围(1-12)”;
if(isNaN(q))
抛出“输入错误。天数不是数字。”;
如果((q<1 | q>31)和(m==1 | m==3 | m==5 | m==7 | m==8 | m==10 | m==12))
抛出“输入错误。天数超出预期范围(1-31)”;
如果((q<1 | | q>30)和&(m==4 | | m==6 | | m==9 | | m==11))
抛出“输入错误。天数超出预期范围(1-30)”;
如果((q<1 | | q>28)和&(m==2))
抛出“输入错误。天数超出预期范围(1-28)”;
如果(m==1 | | m==2){
m=m+12;
Y=Y-1;
}
h=(q+数学层(13*(m+1)/5)+Y+数学层(Y/4)
-数学楼层(Y/100)+数学楼层(Y/400))%7;
{
如果(h==0)
h=“星期六”;
如果(h==1)
h=“星期日”;
如果(h==2)
h=“星期一”;
如果(h==3)
h=“星期二”;
如果(h==4)
h=“星期三”;
如果(h==5)
h=“星期四”;
如果(h==6)
h=“星期五”;
var输出=h;
document.getElementById(“输出”).innerHTML=output;
}
}
捕获(错误){
document.getElementById(“输出”).innerHTML=“错误:”+错误;
}
}
这应该可以正常工作

function handleInput(form) {
    try {


            var form = document.getElementById("timeForm");

            var strYears = form.years.value;
            var strMonths = form.months.value;
            var strDays = form.days.value;
            var Y = parseInt(strYears);
            var m = parseInt(strMonths);
            var q = parseInt(strDays);
            var h = "";
            var output = "";

            if (isNaN(Y))
            throw ("Incorrect input. Years is not a number.");

            if (Y < 0 || Y > 9999)
            throw "Incorrect input. Years is out of expected range (0-9999).";

            if (isNaN(m))
            throw "Incorrect input. Months is not a number.";

            if (m < 1 || m > 12)
            throw "Incorrect input. Months is out of expected range (1-12).";

            if (isNaN(q))
            throw "Incorrect input. Days is not a number.";

            if ((q < 1 || q > 31) && (m == 1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12))
            throw "Incorrect input. Days is out of expected range (1-31).";

            if ((q < 1 || q > 30) && (m == 4 || m== 6 || m== 9 || m==11))
            throw "Incorrect input. Days is out of expected range (1-30).";

            if ((q < 1 || q > 28) && (m == 2)) 
            throw "Incorrect input. Days is out of expected range (1-28).";

            if (m == 1 || m == 2) {
                m = m + 12;
                Y = Y - 1;
                }

                h = (q + Math.floor(13 * (m + 1) / 5) + Y + Math.floor(Y / 4)
                - Math.floor(Y / 100) + Math.floor(Y / 400)) % 7;
                {

            if (h == 0)
                h = "Saturday";
            if (h == 1)
                h = "Sunday";
            if (h == 2)
                h = "Monday";
            if (h == 3)
                h = "Tuesday";
            if (h == 4)
                h = "Wednesday";
            if (h == 5)
                h = "Thursday";
            if (h == 6)
                h = "Friday";



            var output = h;
                document.getElementById("output").innerHTML = output;

                }
        }
        catch(error){
            document.getElementById("output").innerHTML = "Error: " + error;
                    }
    }
函数句柄输入(表单){
试一试{
var form=document.getElementById(“时间格式”);
var strYears=form.years.value;
var strMonths=form.months.value;
var strDays=form.days.value;
变量Y=parseInt(strYears);
var m=parseInt(strMonths);
var q=parseInt(标准日);
var h=“”;
var输出=”;
if(isNaN(Y))
抛出(“输入错误。年份不是数字。”);
如果(Y<0 | | Y>9999)
抛出“输入不正确。年份超出预期范围(0-9999)。”;
if(isNaN(m))
抛出“输入错误。月份不是数字。”;
如果(m<1 | | m>12)
抛出“输入错误。月份超出预期范围(1-12)”;
if(isNaN(q))
投掷“公司
// Code goes here

function handleInput(form) {
  try {
    var form = document.getElementById("timeForm");

    var strYears = form.years.value;
    var strMonths = form.months.value;
    var strDays = form.days.value;

    var Y = parseInt(strYears);
    var m = parseInt(strMonths);
    var q = parseInt(strDays);
    var h = "";
    var output = "";

    if (isNaN(Y))
      throw ("Incorrect input. Years is not a number.");

    if (Y < 0 || Y > 9999)
      throw "Incorrect input. Years is out of expected range (0-9999).";

    if (isNaN(m))
      throw "Incorrect input. Months is not a number.";

    if (m < 1 || m > 12)
      throw "Incorrect input. Months is out of expected range (1-12).";

    if (isNaN(q))
      throw "Incorrect input. Days is not a number.";

    if ((q < 1 || q > 31) && ([1, 3, 5, 7, 8, 10, 12].indexOf(m) != -1))
      throw "Incorrect input. Days is out of expected range (1-31).";

    if ((q < 1 || q > 30) && ([4, 6, 9, 11].indexOf(m) != -1))
      throw "Incorrect input. Days is out of expected range (1-30).";

    if ((q < 1 || q > 28) && (m == 2))
      throw "Incorrect input. Days is out of expected range (1-28).";

    if (m == 1 || m == 2) {
      m = m + 12;
      Y = Y - 1;
    }

    h = (q + Math.floor(13 * (m + 1) / 5) + Y + Math.floor(Y / 4) - Math.floor(Y / 100) + Math.floor(Y / 400)) % 7; {

      if (h == 0)
        h = "Saturday";
      if (h == 1)
        h = "Sunday";
      if (h == 2)
        h = "Monday";
      if (h == 3)
        h = "Tuesday";
      if (h == 4)
        h = "Wednesday";
      if (h == 5)
        h = "Thursday";
      if (h == 6)
        h = "Friday";



      var output = h;
      document.getElementById("output").innerHTML = output;

    }
  } catch (error) {
    document.getElementById("output").innerHTML = "Error: " + error;
  }
}