老师帮我看下,实现不了
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>js函数小结</title>
</head>
<body>
<script>
var year=parseInt(prompt("请属入您的出生年份"));
var month=parseInt(prompt("请属入您的出生月份"));
var day=parseInt(prompt("请属入您的出生日期"));
function funName(){
var i;
if(isNaN(year)){
return "输入内容必须是数字";
}else if(year.length!=4){
return "请输入四位数字数字";
}else{
var m1=31,m3=31,m4=30,m5=31,m6=30,m7=31,m8=31,m9=30,m10=31,m11=30,m12=31;
if(year%4==0 && year%100!=10 || year/400==0){
var m2=29;
}else{
var m2=28;
}
for(var i=0;i<month;i++){
var sum=0;
sum+=arguments[i];
document.write("您的生日在"+year+"年是第"+sum+"天");
}
}
}
</script>
</body>
</html>
谢谢
正在回答 回答被采纳积分+1
<!DOCTYPE html>
<!DOCTYPE html>
<html>
<head>
<title>function homework</title>
<meta charset="utf-8">
</head>
<body>
<script type="text/javascript">
function getYear() {
var year = prompt("请输入你的出生年份");
return year;
}
function getMonth(){
var month = prompt("请输入你的出生月份");
return month;
}
function getDay(){
var day = prompt("请输入你的出生日期");
return day;
}
var year = getYear();
var month = getMonth();
var day = getDay();
function sumDay(){
var sum = 0;
switch(Number(month)){
case 12:sum += 30;
case 11:sum += 31;
case 10:sum += 30;
case 9 :sum += 31;
case 8 :sum += 31;
case 7 :sum += 30;
case 6 :sum += 31;
case 5 :sum += 30;
case 4 :sum += 31;
case 3 :
if((Number(year) % 4 == 0 && Number(year) % 100 != 0) || (Number(year) % 100 == 0 && Number(year) % 400 == 0)){
sum += 29;
}
else{
sum += 28;
}
case 2 :sum += 31;
case 1 :sum += Number(day);
}
return sum;
}
document.write("您的生日在"+year+"的第"+ sumDay()+"天");
</script>
</body>
</html>同学,你好。var arr=[31,,31,30,31,30,31,31,30,31,30,31]; 是数组的定义方式。在这里你应该还没有学到数组的定义方式,但是在你的代码中是用的数组实现的思想,老师还以为你想用数组实现,看来你还是比较有想法的同学,很棒。不过没关系,上一条回复中数组实现方式是一种实现实现方法,等后面你学了数组就能看懂了,下面我再给你另外一种实现方式,可以用switch语句会比较直观,好理解:
<script type="text/javascript">
function testCalcDate() {
var year = prompt('请输入您的出生年份');
year = parseInt(year);
var month = prompt('请输入您的出生月份');
month = parseInt(month);
var day = prompt('请输入您的出生日期');
day = parseInt(day);
//输入年月日后,调用计算的函数
var result = calcDate(year, month, day);
document.write('您的生日在' + year + '年是第' + result + '天');
}
function calcDate(year, month, day) {
var counter = 0;
//判定当年是否为闰年
var isLeapYear = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
if (month == 1) { //如果月份是1,那么他出生的天数就是该年的第几天,后面的月份以此类推
counter = day;
} else if (month == 2) {
counter = 31 + day;
} else if (month == 3) {
counter = 31 + (isLeapYear ? 29 : 28) + day;
} else if (month == 4) {
counter = 31 + (isLeapYear ? 29 : 28) + 31 + day;
} else if (month == 5) {
counter = 31 + (isLeapYear ? 29 : 28) + 31 + 30 + day;
} else if (month == 6) {
counter = 31 + (isLeapYear ? 29 : 28) + 31 + 30 + 31 + day;
} else if (month == 7) {
counter = 31 + (isLeapYear ? 29 : 28) + 31 + 30 + 31 + 30 + day;
} else if (month == 8) {
counter = 31 + (isLeapYear ? 29 : 28) + 31 + 30 + 31 + 30 + 31 + day;
} else if (month == 9) {
counter = 31 + (isLeapYear ? 29 : 28) + 31 + 30 + 31 + 30 + 31 + 31 + day;
} else if (month == 10) {
counter = 31 + (isLeapYear ? 29 : 28) + 31 + 30 + 31 + 30 + 31 + 31 + 30 + day;
} else if (month == 11) {
counter = 31 + (isLeapYear ? 29 : 28) + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + day;
} else if (month == 12) {
counter = 31 + (isLeapYear ? 29 : 28) + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + day;
}
return counter;
}
testCalcDate();
</script>如果帮助到了你,欢迎采纳!
祝学习愉快!
同学,你好。暂时先不用对输入的值做判断,先把输入正确的值逻辑打通之后,再拓展功能。
从你的代码中可以看出来,你想使用数组来实现,需要在外面定义数组。注意输出时要在循环外输出,最后要调用方法。
整体可以参考下面的代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>js函数小结</title>
</head>
<body>
<script>
var year = parseInt(prompt("请属入您的出生年份"));
var month = parseInt(prompt("请属入您的出生月份"));
var day = parseInt(prompt("请属入您的出生日期"));
var arr=[31,,31,30,31,30,31,31,30,31,30,31];
var sum = 0;
funName(arr);
function funName(arr) {
if (year % 4 == 0 && year % 100 != 0 || year%400 == 0) {
arr[1]=29;
} else {
arr[1]=28;
}
for (var i = 0; i < month-1; i++) {
sum += arr[i];
}
document.write("您的生日在" + year + "年是第" + (sum+day) + "天");
}
</script>
</body>
</html>如果帮助到了你,欢迎采纳!
祝学习愉快!
- 参与学习 人
- 提交作业 11218 份
- 解答问题 36712 个
从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星