Javascript判断是否是闰年
ringa_lee
ringa_lee 2017-04-11 13:04:46
[JavaScript讨论组]

计算自己出生那天是该年当中的第几天。效果如下

//声明年的函数
function year(argument) {
    while(true){
        var year=parseInt(prompt("请输入您的出生年份"));
        if (isNaN(year)) {
            alert("对不起,请输入数字!");
        } else {
            if (year<0) {
                alert("对不起年份不能小于公元元年");
            } else {
                break;
            }
        }        
    }
}
//声明月份的函数
function month(argument) {
    while(true){
        var month=parseInt(prompt("请输入您的出生月份"));
        if (isNaN(month)) {
            alert("对不起,请输入数字!");
        } else {
            if (month<1 ||month>12) {
                alert("请输入1-12之间的月份");
            } else {
                break;
            }
        }        
    }
}
//声明日期的函数
function days(argument) {
    while(true){
        var days=parseInt(prompt("请输入您的出生日期"));
        if (isNaN(days)) {
            alert("对不起,请输入数字!");
        } else {
            if (days<1||days>31) {
                alert("请输入1-30 之间的日期")
            } else {
                break;
            }
        }
    }
}
year();
month();
days();

var runNian=(year%4==0 && year%100!=0) || year%400==0;
var months=[31,28,31,30,31,30,31,31,30,31,30,31];

之后就写不出来了,一点思路也没有,。。。。。。。

ringa_lee
ringa_lee

ringa_lee

全部回复(3)
PHP中文网

活用Date对象: 拿当年第一天跟当年生日做相减。再加一不就可以了?


var birth = new Date('1990/1/28');
var start = new Date('1990/1/1');
var res = (birth.getTime()-start.getTime())/1000/60/60/24 +1;
阿神

1.

year();
month();
days();

这几个是输入框的选择项.
2.
var runNian=(year%4==0 && year%100!=0) || year%400==0;
这个是判断闰年通用的方法
3.

for(var i=0; i<month-1; i++){ 
    sum+=months[i]; 
} 

//将输入的月份之前的月份求和。
比如你输入5月,则计算前4个月的总天数。

if(runNian && months>2){ 
    sum+=day+1; 
}else{ 
    sum+=day; 
}

//如果是闰年,并且输入的月份大于2,因为预先定义了var months=[31,28,31,30,31,30,31,31,30,31,30,31];
2月定义了是28天,而闰年2月29天,所以是自己的出生天数再加一天。

其他的情况也就直接加自己的出生天数就可以了。

伊谢尔伦

一楼正解,用Date相减再加一是最简单的方法

var birthDay = new Date(year+'/'+month+'/'+days);
var startDay = new Date(year+'/01/01');
var result = (birthDay.getTime()-startDay.getTime())/1000/60/60/24 + 1;
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号