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/zh-tw/n/329497.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
KHLGR的頭像KHLGR
上一篇 2025-01-14 18:55
下一篇 2025-01-14 18:55

相關推薦

發表回復

登錄後才能評論