判断出生月份问题
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script type="text/javascript">
//声明年函数
function year(){
while(true){
var year=prompt("请输入您的出生年份");
if(isNaN(year)){
alert("请输入数字");
}else{
if (year.length!=4){
alert("请输入4位数字");
}else{
return parseInt(year);
}
}
}
}
year();
//声明月份
function month(){
while(true){
var month=prompt("请输入您的出生月份");
if (isNaN(month)){
alert("请输入数字");
}else{
if(month<1 || month>12){
alert("请输入1-12以内的数字")
}else{
return parseInt(month);
}
}
}
}
month();
//声明日
function date(){
while(true){
var date=prompt("请输入您的出生日")
if(isNaN(date)){
alert("请输入数字");
}else{
if(date<1 || date >31){
alert("请输入1—30以内的数字")
}else{
return parseInt(date);
}
}
}
}
date();
//判断闰年
function runNian(){
var runNian=(year%4==0 && year%100!=0) || year%400==0;
}
runNian();
//判断闰年,计算输入月份之前的天数
function months(){
var sum=0;
for(var i=0;i<month-1; i++)
{sum+=arguments[i];}
if(runNian && month>2){
sum+=date+1;
}else{
sum+=date;
}
return sum;
}
months(31,28,31,30,31,30,31,31,30,31,30,31);
document.write("您的生日是在"+parseInt(year)+"年是第"+sum+"天");
</script>
</body>
</html>我已经return sum为何还不能识别sum??
51
收起
正在回答
1回答
你好,主要问题是,在 函数内定义的变量是局部变量,同时 return返回后,要有接受它的变量。建议将主要变量改成全局,同时调用函数有接受变量。参考如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script type="text/javascript">
var year,month,date,sum,runNian;
//声明年函数
function year() {
while (true) {
year = prompt("请输入您的出生年份");
if (isNaN(year)) {
alert("请输入数字");
} else {
if (year.length != 4) {
alert("请输入4位数字");
} else {
return parseInt(year);
}
}
}
}
year=year();
//声明月份
function month() {
while (true) {
month = prompt("请输入您的出生月份");
if (isNaN(month)) {
alert("请输入数字");
} else {
if (month < 1 || month > 12) {
alert("请输入1-12以内的数字")
} else {
return parseInt(month);
}
}
}
}
month=month();
//声明日
function date() {
while (true) {
var date = prompt("请输入您的出生日")
if (isNaN(date)) {
alert("请输入数字");
} else {
if (date < 1 || date > 31) {
alert("请输入1—30以内的数字")
} else {
return parseInt(date);
}
}
}
}
date=date();
//判断闰年
function runNian() {
runNian = (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
}
runNian();
//判断闰年,计算输入月份之前的天数
function months() {
sum = 0;
for (var i = 0; i < month - 1; i++) {
sum += arguments[i];
}
if (runNian && month > 2) {
sum += date + 1;
} else {
sum += date;
}
return sum;
}
sum=months(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
document.write("您的生日是在" + parseInt(year) + "年是第" + sum + "天");
</script>
</body>
</html>希望对你有帮助,祝学习愉快,欢迎采纳。
前端小白入门系列课程
- 参与学习 人
- 提交作业 11218 份
- 解答问题 36712 个
从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星