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