1-14作业

来源:1-1 javaScript中内置对象介绍

慕粉2148041931

2017-12-05 20:18:08

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>1-14作业</title>

</head>

<body>

<script>

function years(argument) {

// 年

while(true){

var y=prompt('请输入年份');

if (y>2017) {

alert('请输入正确的年份');

}else if (isNaN(y)) {

alert('年份必须是4位数字');

}else{

return y;

}

}

}

function months(argument) {

// 月

while(true){

var m=prompt('请输入月份');

if (isNaN(m)) {

alert('请输入2位数字');

}else if(m<1||m>12){

alert('请输入正确的月份');

}

else {

return m;

}

}

}

function date(argument) {

// 日

while(true){

var d=prompt('请输入日期');

if (isNaN(d)) {

alert('请输入2位数字');

}else if (d<1||d>31) {

alert('请输入正确的日期');

}else{

return d;

}

}

}

function leapyears(argument) {

// 闰年?

while(true){

var ly=true;

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

return ly;

}

}

}

function sums(argument) {

// 总天数

var sums=0;

var m1=31,m2=28,m3=31,m4=30,m5=31,m6=30,m7=31,m8=31,m9=30,m10=31,m11=30,m12=31;

if (ly==0) {

m2=29;

}

switch(m){

case 1:

sums+=d;

break;

case 2:

sums+=m1+d;

case 3:

sums+=m1+m2+d;

break;

case 4:

sums+=m1+m2+m3+d;

break;

case 5:

sums+=m1+m2+m3+m4+d;

break;

case 6:

sums+=m1+m2+m3+m4+m5+d;

break;

case 7:

sums+=m1+m2+m3+m4+m5+m6+d;

break;

case 8:

sums+=m1+m2+m3+m4+m5+m6+m7+d;

break;

case 9:

sums+=m1+m2+m3+m4+m5+m6+m7+m8+d;

break;

case 10:

sums+=m1+m2+m3+m4+m5+m6+m7+m8+m9+d;

break;

case 11:

sums+=m1+m2+m3+m4+m5+m6+m7+m8+m9+m10+d;

break;

case 12:

sums+=m1+m2+m3+m4+m5+m6+m7+m8+m9+m10+m11+d;

break;

}

return sum;

}

var y=years(),

m=months(),

d=date(),

ly=leapyears(),

sum=sums();

document.write('您的生日在'+y+'年是第'+sum+'天');


</script>

</body>

</html>

老师,输入完为什么没反应呢?还有就是闰年的判断那对吗?

:::

function leapyears(argument) {

// 闰年?

while(true){

var ly=true;

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

return ly;

}

}

}

function sums(argument) {

// 总天数

var sums=0;

var m1=31,m2=28,m3=31,m4=30,m5=31,m6=30,m7=31,m8=31,m9=30,m10=31,m11=30,m12=31;

if (ly==0) {

m2=29;

}

switch(m){

case 1:

sums+=d;

break;

case 2:

sums+=m1+d;

case 3:

sums+=m1+m2+d;

break;

case 4:

sums+=m1+m2+m3+d;

break;

case 5:

sums+=m1+m2+m3+m4+d;

break;

case 6:

sums+=m1+m2+m3+m4+m5+d;

break;

case 7:

sums+=m1+m2+m3+m4+m5+m6+d;

break;

case 8:

sums+=m1+m2+m3+m4+m5+m6+m7+d;

break;

case 9:

sums+=m1+m2+m3+m4+m5+m6+m7+m8+d;

break;

case 10:

sums+=m1+m2+m3+m4+m5+m6+m7+m8+m9+d;

break;

case 11:

sums+=m1+m2+m3+m4+m5+m6+m7+m8+m9+m10+d;

break;

case 12:

sums+=m1+m2+m3+m4+m5+m6+m7+m8+m9+m10+m11+d;

break;

}

return sum;

}


写回答

4回答

樱桃小胖子

2017-12-07

http://img.mukewang.com/climg/5a2959d600016dfe03400120.jpg

要细心一些哦~

0

慕粉2148041931

提问者

2017-12-07

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>1-14作业</title>

</head>

<body>

<script>

function years(years) {

// 年

while(true){

var y=prompt('请输入年份');

if (y>2017) {

alert('请输入正确的年份');

}else if (isNaN(y)) {

alert('年份必须是4位数字');

}else{

return parseInt(y);

}

}

}

function months(months) {

// 月

while(true){

var m=prompt('请输入月份');

if (isNaN(m)) {

alert('请输入1-12的数字');

}else if(m<1||m>12){

alert('请输入正确的月份');

}

else {

return parseInt(m);

}

}

}

function date(date) {

// 日

while(true){

var d=prompt('请输入日期');

if (isNaN(d)) {

alert('请输入2位数字');

}else if (d<1||d>31) {

alert('请输入正确的日期');

}else{

return parseInt(d);

}

}

}

function leapyears(leapyears) {

// 闰年?

var ly=false;

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

ly=true;

}

return ly;

}


function sums(months,date) {

// 总天数

var sums=0;

var m1=31,m2=28,m3=31,m4=30,m5=31,m6=30,m7=31,m8=31,m9=30,m10=31,m11=30,m12=31;

if (ly==true) {

m2=29;

}

switch(m){

case 1:

sums=d;

break;

case 2:

sums=m1+d;

case 3:

sums=m1+m2+d;

break;

case 4:

sums=m1+m2+m3+d;

break;

case 5:

sums=m1+m2+m3+m4+d;

break;

case 6:

sums=m1+m2+m3+m4+m5+d;

break;

case 7:

sums=m1+m2+m3+m4+m5+m6+d;

break;

case 8:

sums=m1+m2+m3+m4+m5+m6+m7+d;

break;

case 9:

sums=m1+m2+m3+m4+m5+m6+m7+m8+d;

break;

case 10:

sums=m1+m2+m3+m4+m5+m6+m7+m8+m9+d;

break;

case 11:

sums=m1+m2+m3+m4+m5+m6+m7+m8+m9+m10+d;

break;

case 12:

sums=m1+m2+m3+m4+m5+m6+m7+m8+m9+m10+m11+d;

break;

}

return sums;

}

var y=years(),

m=months(),

d=date(),

ly=leapyears(),

sum=sums();

document.write('您的生日在'+y+'年是第'+sum+'天');


</script>

</body>

</html>

老师,我按照您说的做了修改,可是为什么只有日期在2月份的计算结果不正确呢。检查了几遍也没有发现问题在哪。。。

0

怎么都被占用了呢

2017-12-06

你的代码中有多处错误呢,switch语句中匹配月份的时候是匹配的数值1-12,但是通过prompt获取到的是字符串,所以我们需要将获取到的年月日转化为数值,使用parseInt可以,使用上边同学说的Number也可以的。计算玩日期之后,返回的应该是nums,单词写错了吧。然后判断是否是闰年部分,帮你完善了一下,请参考:

http://img.mukewang.com/climg/5a274f3400010f7a07210891.jpg

http://img.mukewang.com/climg/5a274f41000116f705090218.jpghttp://img.mukewang.com/climg/5a274f480001882d10240205.jpg

http://img.mukewang.com/climg/5a274f6d000159e406950923.jpg

而且累计天数的时候,如上图那样就行

0

慕后端3285839

2017-12-05

1.年可以直接设变量用prompt传参数,月日同理

var year=Number(prompt("年"));

2.函数参数用argument看着有点别扭,不如换成year/month/day或者yy/mm/dd这种,便于后期代码维护

3.天数用switch写12句太罗嗦了,可以尝试用for语句循环输出天数。取上月天数可以用下面的代码实现。

(new Date(year,month,0).getDate());

4.你求天数的函数sum用到两个参数月和日,但是只定义了一个argument,得不到结果很正常。

0

0 学习 · 36712 问题

查看课程

相似问题

1-14作业

回答 1

1-14作业

回答 1

1-14作业问题

回答 1

2-4 作业

回答 1