计算两个时间之间的天数

1第一种

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

public class Test {

public static void main(String[] args) {

try {

//时间转换类

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

Date date1 = sdf.parse("2014-1-10");

Date date2 = sdf.parse("2012-12-20");

//将转换的两个时间对象转换成Calendard对象

Calendar can1 = Calendar.getInstance();

can1.setTime(date1);

Calendar can2 = Calendar.getInstance();

can2.setTime(date2);

//拿出两个年份

int year1 = can1.get(Calendar.YEAR);

int year2 = can2.get(Calendar.YEAR);

//天数

int days = 0;

Calendar can = null;

//如果can1 < can2

//减去小的时间在这一年已经过了的天数

//加上大的时间已过的天数

if(can1.before(can2)){

days -= can1.get(Calendar.DAY_OF_YEAR);

days += can2.get(Calendar.DAY_OF_YEAR);

can = can1;

}else{

days -= can2.get(Calendar.DAY_OF_YEAR);

days += can1.get(Calendar.DAY_OF_YEAR);

can = can2;

}

for (int i = 0; i < Math.abs(year2-year1); i++) {

//获取小的时间当前年的总天数

days += can.getActualMaximum(Calendar.DAY_OF_YEAR);

//再计算下一年。

can.add(Calendar.YEAR, 1);

}

System.out.println("天数差:"+days);

} catch (ParseException e) {

e.printStackTrace();

}

}

}

Console:

天数差:386

2第二种

首先把获取的字符串日期转换成Date类型(从前台页面获取的是字符串类型的日期 a,b):

Date a1 = new SimpleDateFormat("yyyy-MM-dd").parse(a);

Date b1 = new SimpleDateFormat("yyyy-MM-dd").parse(b);

//获取相减后天数

long day = (a1.getTime()-b1.getTime())/(24*60*60*1000);

希望可以帮到你。

第三种

相隔的天数

Date d1 = new Date();

Date d2 = new Date(2013,10,23,14,15,26);

int days = (int)((d1.getTime() - d2.getTime())/86400000);

System.out.println("间隔天数:"  + days);

第三种方式转化的时候出了点问题  希望谁能帮我改进下,第一和第二都可以转换  但要注意第二种时间算出的天数需要自己去区分时间的大小,否则会算出负数。

时间: 2024-08-06 16:04:32

计算两个时间之间的天数的相关文章

MySql计算两日期时间之间相差的天数,秒数,分钟数,周数,小时数

MySql计算两日期时间之间相差的天数,秒数,分钟数,周数,小时数 计算两日期时间之间相差的天数,秒数,分钟数,周数,小时数,这里主要分享的是通过MySql内置的函数 TimeStampDiff() 实现. 函数 TimeStampDiff() 是MySQL本身提供的可以计算两个时间间隔的函数,语法为: TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2) 返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之

js实现的计算两个时间之间的时间差

js实现的计算两个时间之间的时间差:在实际应用中,需要计算两个时间点之间的差距,一般来说都是计算当前时间和一个指定时间点之间的差距,并且有时候需要精确到天.小时.分钟和秒,下面就简单介绍一下如何实现此效果.代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.

25:计算两个日期之间的天数

25:计算两个日期之间的天数 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 给定两个日期,计算相差的天数.比如2010-1-1和2010-1-3相差2天. 输入 共两行:第一行包含三个整数startYear,startMonth,startDay,分别是起始年.月.日.第二行包含三个整数endYear,endMonth,endDay,分别是结束年.月.日.相邻两个整数之间用单个空格隔开. 年份范围在1~3000.保证日期正确且结束日期不早于起始日期.

C/C++中计算两个时间相差的天数

在系统中经常用到time()函数获取系统时间,也就是通常所说的日历时间,这个时间是从1970年1月1日0时开始到现在的秒数. 问:已有日历时间t1和t2(假设t1>t2),如何计算他们之间相差的天数. 答: day = (t1+time_zone*60*60)/time_of_day - (t2+time_zone*60*60)/time_of_day 其中time_zone表示时区间隔,比如说北京时间相比于标准时间就需要加8小时,可以参考下图.time_of_day为一天的秒数,等于24*60

java计算两个日期之间相差天数和相隔天数详解

大家看到文章标题"两个日期之间相差天数和相隔天数",是否有疑惑呢!从中文字面理解,"相差"和"相隔"是有区别的,然而就是这些区别害死很多人,却没有发现,在大量新增统计时是差之毫厘谬以千里,我能都发现是因为一个偶然的机会,一个项目运行几年却没有人发现,我在其中还不到一年,一开始写这些这代码的人根本没分清楚什么情况就写了,怪不得统计的数据总是有那么细微的差别,在于日期"相差"和"相隔"有某些特定的情况下是相等的

js计算两个时间相差的天数

day1='2014-03-31 00:00:01'; function get_day(day1,day2){ var s = day1; var dt = Date.parse(s.replace(/-/g,"/")); var day1 = new Date(dt); var s = day2; var dt = Date.parse(s.replace(/-/g,"/")); var day2 = new Date(dt); var date3=day1.g

C++计算两个日期之间的天数

计算两个日期之间的天数的思路: 首先,判断输入的年份是不是闰年.年份是否相同?月份是否相同?日是否相同? 日月年有三种可能的情况: 同年同月.日数相减就出来了. 同年不同月.计算日期小的月份到年初的天数,计算日期大的月份到年初的天数.再把两个日期向减 不同年.先计算中间相隔几年,计算较小的日期到年底有多少天,再计算较大的日期距年初有多少天,将三个数向加. 代码如下: 1 #include<iostream> 2 #include<CString> 3 #include<cma

计算两个日期之间的天数

//计算两个日期之间的天数 - (NSInteger)calcDaysFromBegin:(NSDate *)beginDate end:(NSDate *)endDate { NSDateFormatter *dateFormatter=[[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"]; //取两个日期对象的时间间隔: NSTimeInterval time= [endD

JS计算两个日期之间的天数

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ