所以基本上我做了一个增加时钟时间的计算:
function Clock(year,month,day,hours,minutes,seconds){
if(seconds !== null){
this.seconds = seconds;
}
if(minutes !== null){
this.minutes = minutes;
}
if(hours !== null){
this.hours = hours;
}
if(day !== null){
this.day = day;
}
if(month !== null){
this.month = month;
}
if(year !== null){
this.year = year;
}
}
function incrementClock(){
clock.seconds++;
if (clock.seconds >=60) {
clock.seconds = 0;
clock.minutes++;
if (clock.minutes >=60) {
clock.minutes = 0;
clock.hours++;
if (clock.hours >=24) {
clock.hours = 0;
clock.days++;
}
}
}
}
function showClock(){
//prints clock in format yyyy/mm/dd hh:mm:ss
}
这会相应地增加秒,分,小时和天......
因此,如果我每秒打电话打印时钟,它将如下所示:
var c = new Clock(2014,04,01,12,13,01);
showClock();
2014/4/1 12:13:1
我被困在月份......
我的问题是我如何检查一个月是否过去,因为每个月有不同的天数?
修改
我正在创建自己的缩小日期函数...所以请不要建议使用Date
个对象,因为我正在尝试实现自己的
答案 0 :(得分:0)
这是你正在寻找的吗?
function incrementClock(){
clock.seconds++;
if (clock.seconds >=60) {
clock.seconds = 0;
clock.minutes++;
if (clock.minutes >=60) {
clock.minutes = 0;
clock.hours++;
if (clock.hours >=24) {
clock.hours = 0;
clock.days++;
var months = [31,((clock.year%4==0)&&((clock.year%100!=0)||(clock.year%400==0)))?29:28,31,30,31,30,31,31,30,31,30,31];
if (clock.days>months[clock.month-1]){
clock.days = 0;
clock.months++;
}
}
}
}
}
这一行:
var months = [31,((clock.year%4==0)&&((clock.year%100!=0)||(clock.year%400==0)))?29:28,31,30,31,30,31,31,30,31,30,31];
创建每个月的月份和日期数组。因此很容易确定每月的天数如下:
days_in_jan = months[0]
days_in_feb = months[1]
...
days_in_dec = months[11]
答案 1 :(得分:0)
你不是。实际上你不会增加任何东西。如果你想要自己的时钟,那很好,但你仍然需要使用Date
对象访问当前时间,所以当你想知道已经过了多少时间时,得到一个新的{{1对象并弄明白:
伪结构:
Date
在该功能中,比较月,日等。
老实说,如果你不喜欢这个答案,那么你就是自己的答案,作为答案,我怎么做这个随机的事情纯粹是一个思想练习"就是这样 - 思考练习。没有真正的意义,因此不应该在SO上询问或。
答案 2 :(得分:0)
正如其他人所做的那样,我建议使用Date对象,或像MomentJS这样的日期库,但似乎你想自己做一个练习。在这种情况下,如果要正确进行计算,您的代码将需要知道每月有多少天。考虑在代码中包含几个月的数组:
var monthLengths = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
您还需要一个函数来确定它是否是闰年:
function isLeapYear(year) {
return (year % 4 == 0) && ((year % 100 != 0) || (year % 400 == 0));
}
有了这些,您应该能够通过检查数组来确定某个日期是否已超过其月份,以及使用闰年函数确定是否应该知道该月份(如果是2月份) 2月份算29天。