㈠ java中怎麼計算兩個日期相差多少個月
給個思路:
int result = 0;
if(year==year1)
{
result=month1-month;//兩個日期相差幾個月,即月份差
}
else
{
result=12*(year1-year)+month1-month;//兩個日期相差幾個月,即月份差
}
㈡ java中計算月份差
方法一:直接計算,先取得兩個日期的年份和月份,月份差=(第二年份-第一年份)*12 + 第二月份-第一月份
方法二:利用java提供的日期類calendar的方法實現,具體實現查查jdk說明吧
㈢ java 怎麼判斷兩個時間月份差
Datedate1=newDate(2015,5,10);
Datedate2=newDate(2016,7,6);
intmonthDiff=(date2.getYear()-date1.getYear())*12+date2.getMonth()-date1.getMonth();
㈣ 在java中計算月份差
年份差=較大時間的年-較小時間的年
if(較大時間的月>較小時間的月){
月份差=年份差*12+(較大時間的月-較小時間的月)
}else if(較大時間的月<較小時間的月){
月份差=(年份差-1)*12+(12-較小時間的月+較大時間的月)
}else{
月份差=年份差*12
}
㈤ java 計算兩個日期相差了幾個月
有兩種方式,一種先將兩個日期轉換為long類型的毫秒數(從1970.1.1凌晨到時間點的毫秒數),然後求差diff,相差的月份:1.0*diff/1000/3600/30;還有一種使用jdk提供的Calendar日歷類
㈥ 在java中計算月份差
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class test21 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("輸入第一個年份");
int yearFirst = Integer.parseInt(br.readLine());
System.out.print("輸入第一個月份");
int monthFirst=Integer.parseInt(br.readLine());
System.out.println("輸入第二個年份");
int yearSecond = Integer.parseInt(br.readLine());
System.out.print("輸入第二個月份");
int monthSecond=Integer.parseInt(br.readLine());
int monthsub = (yearFirst-yearSecond)*12+(monthFirst-monthSecond);
System.out.println("相差的月份"+monthsub);
}
}
㈦ java 中 判斷兩個日期月份的差,後面沒有時分秒.比如2013-07-03與2013-09-03 返回值為2
你可以如此計算,
年份差、月份差算出整數部分
小數部分再按剩餘日期、時分秒按其在當月的比例計算
如2012-11-24 14:20:00和2012-5-24 14:20:00
年差為0,月差為6,其他差為0,結果為6.0
若其中出現某差為負數,需調整
如2012-11-24 14:20:00和2012-5-31 14:20:00
年差為0,月差為6,日差為-6,將月差改為5,
即先計算和2012-6-24 14:20:00的差,
2012-6-24 14:20:00到2012-5-31 14:20:00再計算,
可按6月份2012-6-24 14:20:00到2012-6-01 00:00:00 佔6月份比例
再計算5月份2012-5-31 24:00:00到2012-5-31 14:20:00佔5月份比例
兩個比例加起來是小數部分。
㈧ 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 args
*/
public static Integer getDiffNum(Date startMonth,Date endMonth){
Integer monthNum = 0;
Integer yearNumber = 0;
Calendar startCalendar = Calendar.getInstance();
Calendar endCalendar = Calendar.getInstance();
startCalendar.setTime(startMonth);
endCalendar.setTime(endMonth);
yearNumber = endCalendar.get(endCalendar.YEAR) - startCalendar.get(endCalendar.YEAR);
monthNum = endCalendar.get(Calendar.MONTH) - startCalendar.get(Calendar.MONTH);
return yearNumber*12 + monthNum;
}
已經測試

㈩ java計算兩個時間相隔月數,考慮閏年
/**
* 判斷平閏年方法
*/
public void pingrunnian() {
int year = 0;
//從組件處得到年份(這里是用下拉菜單做的)
if (jtf3.getSelectedIndex() > 0) {
year = (Integer) jtf3.getSelectedItem();
}
int month = 0;
//從組件處得到月份(這里是用下拉菜單做的)
if (jtf4.getSelectedIndex() > 0) {
month = (Integer) jtf4.getSelectedItem();
}
int day = 0;
switch (month) {
//大月
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day = 31;
break;
//小月
case 4:
case 6:
case 9:
case 11:
day = 30;
break;
case 2:
if ((0 == year % 400) || (0 == year % 4 && 0 != year % 100)) {
day = 29;
} else {
day = 28;
}
break;
}
//下面的是向組件里添加得到的值的。 上面才是關鍵
//jtf5.removeAllItems();
//jtf5.addItem("DD");
//for (int i = 1; i <= day; i++) {
// jtf5.addItem(i);
}
}