Java日期差计算天数
2016-04-15 18:08
351 查看
package action;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import com.sun.org.apache.xerces.internal.impl.xpath.regex.ParseException;
public class Test {
/**
* 日期差计算天数
* @param date1
* @param date2
* @return
*/
public static int differentDays(Date date1, Date date2) {
Calendar cal1 = Calendar.getInstance();
cal1.setTime(date1);
Calendar cal2 = Calendar.getInstance();
cal2.setTime(date2);
//获得这一天在是这一年的第多少天
int day1 = cal1.get(Calendar.DAY_OF_YEAR);
int day2 = cal2.get(Calendar.DAY_OF_YEAR);
// 获取年
int year1 = cal1.get(Calendar.YEAR);
int year2 = cal2.get(Calendar.YEAR);
if (year1 != year2) // 不同一年
{
int timeDistance = 0;
for (int i = year1; i < year2; i++) {
if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0)
{
timeDistance += 366; //闰年
} else
{
timeDistance += 365; //不是闰年
}
}
return timeDistance + (day2 - day1);
} else {
System.out.println("判断day2 - day1 : " + (day2 - day1));
return day2 - day1; // 同年
}
}
/**
* 通过时间秒毫秒数判断两个时间的间隔
* @param date1
* @param date2
* @return
*/
public static int differentDaysByMillisecond(Date date1, Date date2) {
int days = (int) ((date2.getTime() - date1.getTime()) / (1000 * 3600 * 24));
return days;
}
public static void main(String[] args) throws java.text.ParseException {
String dateStr = "2015-04-01";
String dateStr2 = "2015-04-10";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd");
try {
Date date2 = format.parse(dateStr2);
Date date = format.parse(dateStr);
System.out.println("两个日期的差距:" + differentDays(date, date2));
System.out.println("两个日期的差距通过秒毫秒数判断:" + differentDaysByMillisecond(date, date2));
} catch (ParseException e) {
e.printStackTrace();
}
}
}
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import com.sun.org.apache.xerces.internal.impl.xpath.regex.ParseException;
public class Test {
/**
* 日期差计算天数
* @param date1
* @param date2
* @return
*/
public static int differentDays(Date date1, Date date2) {
Calendar cal1 = Calendar.getInstance();
cal1.setTime(date1);
Calendar cal2 = Calendar.getInstance();
cal2.setTime(date2);
//获得这一天在是这一年的第多少天
int day1 = cal1.get(Calendar.DAY_OF_YEAR);
int day2 = cal2.get(Calendar.DAY_OF_YEAR);
// 获取年
int year1 = cal1.get(Calendar.YEAR);
int year2 = cal2.get(Calendar.YEAR);
if (year1 != year2) // 不同一年
{
int timeDistance = 0;
for (int i = year1; i < year2; i++) {
if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0)
{
timeDistance += 366; //闰年
} else
{
timeDistance += 365; //不是闰年
}
}
return timeDistance + (day2 - day1);
} else {
System.out.println("判断day2 - day1 : " + (day2 - day1));
return day2 - day1; // 同年
}
}
/**
* 通过时间秒毫秒数判断两个时间的间隔
* @param date1
* @param date2
* @return
*/
public static int differentDaysByMillisecond(Date date1, Date date2) {
int days = (int) ((date2.getTime() - date1.getTime()) / (1000 * 3600 * 24));
return days;
}
public static void main(String[] args) throws java.text.ParseException {
String dateStr = "2015-04-01";
String dateStr2 = "2015-04-10";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd");
try {
Date date2 = format.parse(dateStr2);
Date date = format.parse(dateStr);
System.out.println("两个日期的差距:" + differentDays(date, date2));
System.out.println("两个日期的差距通过秒毫秒数判断:" + differentDaysByMillisecond(date, date2));
} catch (ParseException e) {
e.printStackTrace();
}
}
}
相关文章推荐
- 对springMVC的简单理解
- java的输入输出及相关快捷键
- Java之从键盘输入值赋给变量
- 各种排序算法的分析及java实现
- Java中有关Null的9件事
- JavaMail API细节详细解析大全
- 基于Activiti5工作流实战企业协同OA办公系统(spring-data-jpa、uur前台组件)
- java持久层框架mybatis如何防止sql注入
- java 调用Quartz 不同版本使用分析 1.6x 、1.7x、1.8x
- Java第五次作业
- Java核心技术点之动态代理
- java持久层框架mybatis如何防止sql注入
- JAVA得到一个指定日期六个月后的日期例子
- Ubuntu下eclipse按alt+/没有自动补全代码功能
- java持久层框架mybatis如何防止sql注入
- java小项目之成绩管理、排课软件、局域网聊天软件
- Eclipse4.X版本安装fatjar插件(luna mars 版本均可用)
- Spark Programming by Java——RDD基本操作
- 【Java】Socket入门 [二]
- java对象和json对象之间互相转换例子