请教下各位,js计算时间差怎么计算,计算出两时间差得年、月、日

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教下各位,js计算时间差怎么计算,计算出两时间差得年、月、日相关的知识,希望对你有一定的参考价值。

请教下各位,js计算时间差怎么计算:比如出生日期是1987-11-08 现在日期是2011-11-30,现在我要计算得到从出生日期到当前日期有多少年多少月多少天,如何计算。我能计算出 年数和天数,但是由于每个月月天数不同,所以无法得到正确的月数。求教!

java写的你参考下,看看能不能给你个启发:
package app.test;
public class DataTest
static int[] days = new int[] 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30,
31;
public static void main(String[] orgs)
DataTest datatest = new DataTest();
DateClass date1 = new DateClass();
DateClass date2 = new DateClass();
date1.year = 2009;
date1.month = 3;
date1.day = 28;
date2.year = 2008;
date2.month = 1;
date2.day = 28;
datatest.calculateMinute(date1, date2);

private long calculateMinute(DateClass date1, DateClass date2)
long result = 0;
int temp=0;
if (date1.year - date2.year > 0)
temp += (date1.year - date2.year) * 365;
for (int i = date2.year; i < date1.year; i++)
if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0)
temp++;


int daySpan1 = calculateDay(date1, days);
int daySpan2 = calculateDay(date2, days);
temp-=daySpan2;
temp+=daySpan1;
else
int daySpan1 = calculateDay(date1, days);
int daySpan2 = calculateDay(date2, days);
temp = daySpan1 - daySpan2;

result += temp * 24 * 60;
System.out.println(date1.year+"年"+date1.month+"月"+date1.day+"日"+"-----"+date2.year+"年"+date2.month+"月"+date2.day+"日"+"相差"+temp+"天");
System.out.println(date1.year+"年"+date1.month+"月"+date1.day+"日"+"-----"+date2.year+"年"+date2.month+"月"+date2.day+"日"+"相差"+result+"分钟");
return result;

private int calculateDay(DateClass date, int[] days)
int result = 0;
if ((date.year % 4 == 0 && date.year % 100 != 0)
|| date.year % 400 == 0)
days[1] = 29;

for (int i = 0; i < date.month - 1; i++)
result += days[i];

result += date.day;
return result;



class DateClass
int year;
int month;
int day;
追问

谢谢,但是好像这个也不好计算出相差月份吧

追答

要计算相差月份只要下下的改下就好了啊

追问

是用天数除以30天吗?年数除以365吗?,能否写详细点呢,谢谢啦

参考技术A 这个问题换个思路来想
首先判断现在日期是否大于出生日期 如果是月份差-1 否则返回 同理判断年份
判断年份对4取余是否为0
年=new 年1();
月=new月1();
年1=12*月1;
然后输出就得了呗追问

这样相差多少月好像很难计算出来哦

追答

也是 还是换这个吧
http://blog.csdn.net/zhai4902176/article/details/6853276
你去看看这个 我觉得不错。。看不懂的话再追问

追问

这个容易懂,科室计算出两个日期相差几年几月几日,还是麻烦的。因为每月天数不一样

追答

你真的看程序了么
private static int howday(int year,int month,int day)
int da[] = 1,3,5,7,8,10,12;
int xiao[] = 4,6,9,11;
int tian = 0;
if(month == 1)
tian = day;

else
for(int i = 1;i < month;i++)
if(panduan(da, i))
tian = tian + 31;

else if(panduan(xiao, i))
tian = tian + 30;

else if ((i == 2)&&(year%4 == 0))
tian = tian + 29;
else if ((i == 2)&&(year%4 != 0))
tian = tian + 28;


tian = tian + day;

return tian;

不懂啥意思么?
这不就定义成每个月有多少天了么

以上是关于请教下各位,js计算时间差怎么计算,计算出两时间差得年、月、日的主要内容,如果未能解决你的问题,请参考以下文章

请教各位大神,如何用python提取出两幅图像中不同的部分

java中如何控制时间间隔?

今天刚装的Ubuntu,请教各位大虾如何设置上网……

您好有个问题请教一下cpu怎么和gpu并行计算处理好日常软件

在JAVA中如何算出两段时间相差的月数 ,

各位大大,请教个问题。终端服务配置为每用户的许可,远程桌面连接验证失败,如何解决?