java比较两个时间相差几个月,java计算两个日期相差几个月

本文目录一览:

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

/** * 计算两个日期之间相差的月数 * * @param date1 * @param date2 * @return */ public static int getMonths(Date date1, Date date2) { int iMonth = 0; int flag = 0; try { Calendar objCalen

/**

* 计算两个日期之间相差的月数

*

* @param date1

* @param date2

* @return

*/

public static int getMonths(Date date1, Date date2) {

int iMonth = 0;

int flag = 0;

try {

Calendar objCalendarDate1 = Calendar.getInstance();

objCalendarDate1.setTime(date1);

Calendar objCalendarDate2 = Calendar.getInstance();

objCalendarDate2.setTime(date2);

if (objCalendarDate2.equals(objCalendarDate1))

return 0;

if (objCalendarDate1.after(objCalendarDate2)) {

Calendar temp = objCalendarDate1;

objCalendarDate1 = objCalendarDate2;

objCalendarDate2 = temp;

}

if (objCalendarDate2.get(Calendar.DAY_OF_MONTH) objCalendarDate1

.get(Calendar.DAY_OF_MONTH))

flag = 1;

if (objCalendarDate2.get(Calendar.YEAR) objCalendarDate1

.get(Calendar.YEAR))

iMonth = ((objCalendarDate2.get(Calendar.YEAR) – objCalendarDate1

.get(Calendar.YEAR))

* 12 + objCalendarDate2.get(Calendar.MONTH) – flag)

– objCalendarDate1.get(Calendar.MONTH);

else

iMonth = objCalendarDate2.get(Calendar.MONTH)

– objCalendarDate1.get(Calendar.MONTH) – flag;

} catch (Exception e) {

e.printStackTrace();

}

return iMonth;

}

java 计算两个日期相差了几个月

有两种方式,一种先将两个日期转换为long类型的毫秒数(从1970.1.1凌晨到时间点的毫秒数),然后求差diff,相差的月份:1.0*diff/1000/3600/30;还有一种使用jdk提供的Calendar日历类

Java 计算两个日期相差月数

pre name=”code” class=”java” /**

* 计算两个日期之间相差的月数

* @param date1

* @param date2

* @return

*/

private int getMonths(Date date1, Date date2){

int iMonth = 0;

int flag = 0;

try{

Calendar objCalendarDate1 = Calendar.getInstance();

objCalendarDate1.setTime(date1);

Calendar objCalendarDate2 = Calendar.getInstance();

objCalendarDate2.setTime(date2);

if (objCalendarDate2.equals(objCalendarDate1))

return 0;

if (objCalendarDate1.after(objCalendarDate2)){

Calendar temp = objCalendarDate1;

objCalendarDate1 = objCalendarDate2;

objCalendarDate2 = temp;

}

if (objCalendarDate2.get(Calendar.DAY_OF_MONTH) objCalendarDate1.get(Calendar.DAY_OF_MONTH))

flag = 1;

if (objCalendarDate2.get(Calendar.YEAR) objCalendarDate1.get(Calendar.YEAR))

iMonth = ((objCalendarDate2.get(Calendar.YEAR) – objCalendarDate1.get(Calendar.YEAR))

* 12 + objCalendarDate2.get(Calendar.MONTH) – flag)

– objCalendarDate1.get(Calendar.MONTH);

else

iMonth = objCalendarDate2.get(Calendar.MONTH)

– objCalendarDate1.get(Calendar.MONTH) – flag;

} catch (Exception e){

e.printStackTrace();

}

return iMonth;

} /pre

java 求两个日期差几个月

import java.util.Date;

import java.util.Calendar;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.io.PrintStream;

public class DateDiffMonth{

public static void main(String [] argv) throws Exception {

System.out.println(getMonthDiff(“1900-10-21”, “1901-01-01”));

}

/**

* 得到两日期相差几个月

*

* @param String

* @return

*/

public static long getMonthDiff(String startDate, String endDate) throws ParseException {

long monthday;

SimpleDateFormat fmt = new SimpleDateFormat(“yyyy-MM-dd”);

Date startDate1 = fmt.parse(startDate);

Calendar starCal = Calendar.getInstance();

starCal.setTime(startDate1);

int sYear = starCal.get(Calendar.YEAR);

int sMonth = starCal.get(Calendar.MONTH);

int sDay = starCal.get(Calendar.DAY_OF_MONTH);

Date endDate1 = fmt.parse(endDate);

Calendar endCal = Calendar.getInstance();

endCal.setTime(endDate1);

int eYear = endCal.get(Calendar.YEAR);

int eMonth = endCal.get(Calendar.MONTH);

int eDay = endCal.get(Calendar.DAY_OF_MONTH);

monthday = ((eYear – sYear) * 12 + (eMonth – sMonth));

//这里计算零头的情况,根据实际确定是否要加1 还是要减1

if (sDay eDay) {

monthday = monthday + 1;

}

return monthday;

}

}

java计算两个时间之间多少个月

应该可以满足你的需求了

/**

*

* 计算两个日期相差的月份数

*

* @param date1 日期1

* @param date2 日期2

* @param pattern 日期1和日期2的日期格式

* @return 相差的月份数

* @throws ParseException

*/

public static int countMonths(String date1,String date2,String pattern) throws ParseException{

SimpleDateFormat sdf=new SimpleDateFormat(pattern);

Calendar c1=Calendar.getInstance();

Calendar c2=Calendar.getInstance();

c1.setTime(sdf.parse(date1));

c2.setTime(sdf.parse(date2));

int year =c2.get(Calendar.YEAR)-c1.get(Calendar.YEAR);

//开始日期若小月结束日期

if(year0){

year=-year;

return year*12+c1.get(Calendar.MONTH)-c2.get(Calendar.MONTH);

}

return year*12+c2.get(Calendar.MONTH)-c1.get(Calendar.MONTH);

}

Java比较两个时间相差多少天,多少个月,多少年

首先全部转换成毫秒数,然后相减,再除以(1000*60*60*24)得到的是天数!想要月数就再除以30得到的就是月数!想要年数就除以365得到的就是年数了,

原创文章,作者:KHLGR,如若转载,请注明出处:https://www.506064.com/n/329497.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
KHLGR的头像KHLGR
上一篇 2025-01-14 18:55
下一篇 2025-01-14 18:55

相关推荐

发表回复

登录后才能评论