當前位置:首頁 » 編程語言 » java日期計算

java日期計算

發布時間: 2022-09-08 17:32:23

java計算兩個日期時間相差幾天,幾小時,幾分鍾等

思路是先計算兩個日期相差的毫秒數,然後分別根據每天的毫秒數、每小時的毫秒數、每分鍾的毫秒數來計算相差幾天,幾小時,幾分鍾。具體代碼如下:

public static String getDatePoor(Date endDate, Date nowDate) {

long nd = 1000 * 24 * 60 * 60;//每天毫秒數

long nh = 1000 * 60 * 60;//每小時毫秒數

long nm = 1000 * 60;//每分鍾毫秒數

long diff = endDate.getTime() - nowDate.getTime();// 獲得兩個時間的毫秒時間差異

long day = diff / nd; // 計算差多少天

long hour = diff % nd / nh;// 計算差多少小時

long min = diff % nd % nh / nm; // 計算差多少分鍾

return day + "天" + hour + "小時" + min + "分鍾";

}

然後做一個測試,調用這個方法測試一下:

可以看出兩個日期時間相差幾天,幾小時,幾分鍾都可以算出來。

(1)java日期計算擴展閱讀:

Java使用以下三種方法來比較兩個日期:

1、使用 getTime() 方法獲取兩個日期(自1970年1月1日經歷的毫秒數值),然後比較這兩個值。

2、使用方法 before(),after() 和 equals()。例如,一個月的12號比18號早,則 new Date(99, 2, 12).before(new Date (99, 2, 18)) 返回true。

3、使用 compareTo() 方法,它是由 Comparable 介面定義的,Date 類實現了這個介面。

㈡ java中怎麼計算兩個日期之間的天數

java.text.SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
// java.util.Calendar calendar = Calendar.getInstance();
//
// Date today = sdf.parse(sdf.format(new Date())); //將今天的日期格式化成 yyyy-MM-dd
// Date chooseDate = sdf.parse("2015-10-01"); //將選擇是日期轉換成Date
// long t = chooseDate.getTime() - today.getTime(); //計算兩個日期的時間差
// long d = t / (1000 * 60 * 60 * 24); //計算兩個日期相差的天數

㈢ java 計算某日期 多少天後的日期

java計算某日期之後的日期,可以參考如下代碼:
public static void main(String[] args) {
// 時間表示格式可以改變,yyyyMMdd需要寫例如20160523這種形式的時間
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
String str = "2016/05/23";
// 將字元串的日期轉為Date類型,ParsePosition(0)表示從第一個字元開始解析
Date date = sdf.parse(str, new ParsePosition(0));
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
// add方法中的第二個參數n中,正數表示該日期後n天,負數表示該日期的前n天
calendar.add(Calendar.DATE, -10);
Date date1 = calendar.getTime();
String out = sdf.format(date1);
System.out.println(out);
}

㈣ JAVA日期計算

import java.util.Date;

public class DateUtil
{
/**
* milliseconds in one day
*/
public static final long MILLIS_IN_DAY = 1000 * 60 * 60 * 24;

/**
* get the n th date after the given date
*/
public static Date getNextNDate(Date date, int n) {
return new Date(date.getTime() + DateUtil.MILLIS_IN_DAY * n);
}

public static void main(String[] args) {
Date now = new Date();
System.out.println(now);
System.out.println("ten days later");
System.out.println(getNextNDate(now,10));
}
}

㈤ java如何計算日期的加減

第一種,知道日期,如2019091109144
String str=txnTime;
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");//格式化輸出日期
Date dt = null;
try {
dt = sdf.parse(str);
} catch (ParseException e) {
// TODO 自動生成的 catch 塊
e.printStackTrace();
}
Calendar rightNow = Calendar.getInstance();
rightNow.setTime(dt);
rightNow.add(Calendar.YEAR,-1);//日期減1年
rightNow.add(Calendar.MONTH,3);//日期加3個月
rightNow.add(Calendar.DAY_OF_YEAR,10);//日期加10天
rightNow.add(Calendar.SECOND,60);//日期加60秒天
Date dt1=rightNow.getTime();
String reStr = sdf.format(dt1);
System.out.println(reStr);
第二種,自己獲取時間,格式化輸出計算加減
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");//格式化輸出日期
Date now = new Date();
long time = 60*1000;//60秒
Date afterDate = new Date(now .getTime() + time);//60秒後的時間
Date beforeDate = new Date(now .getTime() - time);//60秒前的時間
System.out.println(sdf.format(afterDate ));

㈥ (JAVA)輸入年月日,計算日期是今年的第幾天

import java.util.Scanner;

/**

* Created by xpf on 2018/6/22 :)

* GitHub:xinpengfei520

* Function:

*/

public class CalculateUtils {

/*平年二月28天*/

private static final int DAYS_28 = 28;

/*閏年二月29天*/

private static final int DAYS_29 = 29;

/*除了31天的月份其他均為30天*/

private static final int DAYS_30 = 30;

/*1、3、5、7、8、10、12月份31天*/

private static final int DAYS_31 = 31;

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

System.out.println("Please input year:");

int year = input.nextInt();

System.out.println("Please input month:");

int month = input.nextInt();

System.out.println("Please input day:");

int day = input.nextInt();

int daysInYear = getDaysInYear(year, month, day);

System.out.println("daysInYear:" + daysInYear);

}

/**

* get days in this year

*

* @param year

* @param month

* @param day

* @return

*/

public static int getDaysInYear(int year, int month, int day) {

int totalDays = 0;

switch (month) {

// 12 月份加的是11月份的天數,依次類推

case 12:

totalDays += DAYS_30;

case 11:

totalDays += DAYS_31;

case 10:

totalDays += DAYS_30;

case 9:

totalDays += DAYS_31;

case 8:

totalDays += DAYS_31;

case 7:

totalDays += DAYS_30;

case 6:

totalDays += DAYS_31;

case 5:

totalDays += DAYS_30;

case 4:

totalDays += DAYS_31;

case 3:

// 判斷是否是閏年

if (((year / 4 == 0) && (year / 100 != 0)) || (year / 400 == 0)) {

totalDays += DAYS_29;

} else {

totalDays += DAYS_28;

}

case 2:

totalDays += DAYS_31;

case 1: // 如果是1月份就加上輸入的天數

totalDays += day;

}

return totalDays;

}

}

【解題思路】

1、通過年份區分是閏年還是平年,平年 2 月 28 年,閏年 2 月 29 天。

2、1、3、5、7、8、10、12 月份為 31 天,其餘月份為 30 天。

3、將每個月的天數相加即可,如果輸入的是 12 月,則從 11 月往前累加到1月。

(6)java日期計算擴展閱讀

其他java計算日期的方式

package study01;

import java.util.Scanner;

public class TestDay {

/*

* 輸入2017年的月和日:month=?,day=? 輸出輸入的日期是2017年的第幾天,使用switch完成

*/

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

System.out.print("month=");

int month = sc.nextInt();

System.out.print("day=");

int day = sc.nextInt();

int days = 0;

switch (month) {

case 12:

days += 30;

case 11:

days += 31;

case 10:

days += 30;

case 9:

days += 31;

case 8:

days += 31;

case 7:

days += 30;

case 6:

days += 31;

case 5:

days += 30;

case 4:

days += 31;

case 3:

days += 28;

case 2:

days += 31;

case 1:

days += day;

}

if(days>365){

System.out.println("你輸入的已經超過了365天了");

}else{

System.out.println("第" + days + "天");

}

}

}

輸出的結果如下:

month=12

day=31

第365天

㈦ 用JAVA編寫 知道一個日期,怎麼計算出這個日

先求出今天是星期幾,然後算距離周一差幾天,距離周末差幾天,進行加運算

這中間還要判斷是否是月初,月末,年初,年末,然後做相應的加減就行了

算星期幾好像是 求出1900年一月一號到你給的這個日期的總天數,然後對7取余

public static void getTime(Date date) {
if(date == null) date=new Date();
Calendar calendar=Calendar.getInstance();
calendar.setTime(date);
int dow=calendar.get(Calendar.DAY_OF_WEEK);
if(dow==7) dow=0;
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
//本周最小日期
calendar.add(Calendar.DAY_OF_YEAR, -dow);
String strDate=sdf.format(calendar.getTime());
System.out.println(strDate);

// 本周最大日期
calendar.add(Calendar.DAY_OF_YEAR, 6);
strDate=sdf.format(calendar.getTime());
System.out.println(strDate);
}

㈧ java計算兩個日期相差多少天小時分鍾等

Date d=new Date();

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

System.out.println("今天的日期:"+df.format(d));

System.out.println("兩天前的日期:" + df.format(new Date(d.getTime() - (long)2 * 24 * 60 * 60 * 1000)));

System.out.println("三天後的日期:" + df.format(new Date(d.getTime() + (long)3 * 24 * 60 * 60 * 1000)));

㈨ Java 寫個程序計算日期

import java.util.Calendar;
import java.util.GregorianCalendar;

public class MyDate {

public static void main(String[] args) {
Calendar date = Calendar.getInstance();
System.out.println(date.getTime());
System.out.println("....................................");

System.out.println("當前年份:" + date.get(Calendar.YEAR) + " 年");
System.out.println("當前月份:" + (date.get(Calendar.MONTH) + 1) + " 月");
System.out.println("當前日期:" + date.get(Calendar.DATE) + " 日");
System.out.println("....................................");

System.out.println("小時:" + date.get(Calendar.HOUR) + " " + (date.get(Calendar.AM_PM) == 0 ? "PM" : "AM"));
System.out.println("小時:" + date.get(Calendar.HOUR_OF_DAY));
System.out.println("分鍾:" + date.get(Calendar.MINUTE));
System.out.println("秒:" + date.get(Calendar.SECOND));
System.out.println("毫秒:" + date.get(Calendar.MILLISECOND));
System.out.println("....................................");

System.out.println(getWeekStr(date.get(Calendar.DAY_OF_WEEK)));
System.out.println("當前月份的第 " + date.get(Calendar.DAY_OF_MONTH) + " 天");
System.out.println("當前年份的第 " + date.get(Calendar.DAY_OF_YEAR) + " 天");
System.out.println("....................................");

boolean b = ((GregorianCalendar) date).isLeapYear(date.get(Calendar.YEAR));
if (b) {
System.out.println("閏年");
} else {
System.out.println("平年");
}

}

// 判斷是否是閏年,是返回true,否則返回false
public static boolean isLeanYear(int year) {
boolean falg = false;
if ((year % 4 == 0) && (year % 100 != 0) || year % 400 == 0) {
falg = true;
}
return falg;
}

public static String getWeekStr(int num) {
switch (num) {
case 1:
return "星期 日";
case 2:
return "星期一 ";
case 3:
return "星期 二 ";
case 4:
return "星期三 ";
case 5:
return "星期 四";
case 6:
return "星期 五 ";
case 7:
return "星期六 ";
}
return "";
}
}

㈩ java中如何計算出兩個日期之間相差多少天

思路就是根據它們相差的毫秒數除以每天的毫秒數(60*60*24*1000),代碼如下:

public static void main(String[] args) throws ParseException {

String date1="1987-01-01";

String date2="2010-01-01";

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

Date d1=sdf.parse(date1);

Date d2=sdf.parse(date2);

long daysBetween=(d2.getTime()-d1.getTime()+1000000)/(60*60*24*1000);

System.out.println("1987-01-01 與 2010-01-01 相隔 "+daysBetween+" 天");

}

運行結果如下:

(10)java日期計算擴展閱讀:

Java使用以下三種方法來比較兩個日期:

1、使用 getTime() 方法獲取兩個日期(自1970年1月1日經歷的毫秒數值),然後比較這兩個值。

2、使用方法 before(),after() 和 equals()。例如,一個月的12號比18號早,則 new Date(99, 2, 12).before(new Date (99, 2, 18)) 返回true。

3、使用 compareTo() 方法,它是由 Comparable 介面定義的,Date 類實現了這個介面。

SimpleDateFormat 是一個以語言環境敏感的方式來格式化和分析日期的類。SimpleDateFormat 允許你選擇任何用戶自定義日期時間格式來運行

例如:

SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");

這一行代碼確立了轉換的格式,其中 yyyy 是完整的公元年,MM 是月份,dd 是日期,HH:mm:ss 是時、分、秒。

注意:有的格式大寫,有的格式小寫,例如 MM 是月份,mm 是分;HH 是 24 小時制,而 hh 是 12 小時制。

以上實例編譯運行結果如下:

當前時間為: 2018-09-14 10:16:34

菜鳥教程-Java 日期時間

熱點內容
存儲卡交流 發布:2025-01-13 07:16:06 瀏覽:982
php字元串浮點數 發布:2025-01-13 07:15:28 瀏覽:997
python排序cmp 發布:2025-01-13 07:09:04 瀏覽:71
雲腳本精靈 發布:2025-01-13 07:03:27 瀏覽:617
高維訪問 發布:2025-01-13 07:03:23 瀏覽:974
保衛蘿卜有腳本嗎 發布:2025-01-13 06:30:29 瀏覽:741
天貓上傳 發布:2025-01-13 06:06:35 瀏覽:156
php處理並發 發布:2025-01-13 06:03:44 瀏覽:283
安卓傳文件的軟體哪個最好 發布:2025-01-13 06:03:07 瀏覽:886
電腦伺服器可以做嗎 發布:2025-01-13 05:59:49 瀏覽:847