如果您提供0的dayValue在Date.setFullYear你上一个月的最后一天:
d = new Date(); d.setFullYear(2008, 11, 0); // Sun Nov 30 2008
Run Code Online (Sandbox Code Playgroud)
在mozilla中提到了这种行为.这是一个可靠的跨浏览器功能还是我应该考虑其他方法?
function leapYear(year){
var result;
year = parseInt(document.getElementById("isYear").value);
if (years/400){
result = true
}
else if(years/100){
result = false
}
else if(years/4){
result= true
}
else{
result= false
}
return result
}
Run Code Online (Sandbox Code Playgroud)
这是我迄今为止(该条目是在从这样存储在"isYear"),我基本上遵循了这一位置,所以使用的是什么我已经有了,我怎么可以检查,如果该条目是基于这些条件闰年(注意我在实现伪代码时可能做错了,如果有的话请纠正我)编辑:注意这需要使用整数而不是日期函数
性能对这一个人来说至关重要......这件事需要快速闪电!
您如何验证给定月份的天数?
我的第一个想法是创建一个包含给定月份日期的数组,索引代表月份:
var daysInMonth = [
31, // January
28, // February
31, // March
etc.
];
Run Code Online (Sandbox Code Playgroud)
然后做一些事情:
function validateDaysInMonth(days, month)
{
if (days < 1 || days > daysInMonth[month]) throw new Error("Frack!");
}
Run Code Online (Sandbox Code Playgroud)
但是......闰年怎么样?如何实现闰年检查并保持功能运行相对较快?
更新:我希望你们向我们展示一些代码,这些代码可以完成月闰年验证的日期.
这是描述今天使用的逻辑的流程图:
http://visualbasic.about.com/library/graphics/dykleapyr1-1.gif
我使用C制作了一个程序来查找输入的年份是否是闰年.但遗憾的是它运作不佳.它说一年是飞跃,前一年不是飞跃.
#include<stdio.h>
#include<conio.h>
int yearr(int year);
void main(void)
{
int year;
printf("Enter a year:");
scanf("%d",&year);
if(!yearr(year))
{
printf("It is a leap year.");
}
else
{
printf("It is not a leap year");
}
getch();
}
int yearr(int year)
{
if((year%4==0)&&(year/4!=0))
return 1;
else
return 0;
}
Run Code Online (Sandbox Code Playgroud)
阅读评论后,我编辑了我的编码:
#include<stdio.h>
#include<conio.h>
int yearr(int year);
void main(void)
{
int year;
printf("Enter a year:");
scanf("%d",&year);
if(!yearr(year))
{
printf("It is a leap year.");
}
else
{
printf("It is not a leap year");
}
getch();
}
int …Run Code Online (Sandbox Code Playgroud)