Java 各種時間上的操作範例

分享一些在專案中用到JAVA與日期相關的操作,包括:

  • 取得目前的年、月、日
  • 判斷兩個日期的大小
  • 計算兩個日期的差距
  • 取得昨天的日期
  • 取得上個月的開始與結束日
package CDIT.stanley;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.Calendar;

public class dateOperation {
	
	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{
            return day2-day1;
        }
    }
	
	public static Date getFirstMonthDay(Calendar calendar) {
		calendar.set(Calendar.DATE, calendar.getActualMinimum(Calendar.DATE));
		return calendar.getTime();
	}

	public static Date getLastMonthDay(Calendar calendar) {
		calendar.set(Calendar.DATE, calendar.getActualMaximum(Calendar.DATE));
		return calendar.getTime();
	}
	
    public static void main(String[] args) throws ParseException {
    	
    	//取得目前的年、月、日
		Calendar calendar = Calendar.getInstance();	
		System.out.println("今天是" + calendar.get(Calendar.YEAR) + "年" + (calendar.get(Calendar.MONTH) + 1) + "月" + calendar.get(Calendar.DAY_OF_MONTH) + "日");
		System.out.println("==================================================");
    	//輸出:今天是2017年8月24日
		
		//判斷兩個日期的大小
    	SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", Locale.TAIWAN);
    	Date date1 = sdf.parse("2017-08-23");
    	Date date2 = sdf.parse("2016-09-22");
		System.out.println("Date1 < Date2 : " + date1.before(date2));
		System.out.println("Date1 > Date2 : " + date1.after(date2));
		System.out.println("==================================================");
		//輸出:Date1 < Date2 : false、Date1 > Date2 : true
		
		//計算兩個日期的差距
		System.out.println("Date1 & Date2 差距 : " + differentDays(date1 , date2) + "天");
		System.out.println("==================================================");
		//輸出:Date1 & Date2 差距 : 31天
		
		//取得昨天的日期
		calendar = Calendar.getInstance();
		calendar.add(Calendar.DATE, -1);
		String  yestedayDate = sdf.format(calendar.getTime());
		System.out.println("昨天是" + yestedayDate);
		System.out.println("==================================================");
		//輸出:昨天是2017-08-23
		
		//取得上個月的開始與結束日
		calendar = Calendar.getInstance();
		calendar.add(Calendar.MONTH,-1);
		String monthDayFirst = sdf.format(getFirstMonthDay(calendar));
		String monthDayLast = sdf.format(getLastMonthDay(calendar));
		System.out.println("上個月的第一天是" + monthDayFirst);
		System.out.println("上個月的最後一天是" + monthDayLast);
		System.out.println("==================================================");
		//輸出:上個月的第一天是2017-07-01、上個月的最後一天是2017-07-31
    }
}

You may also like...

37,430 Responses

  1. One thing I’ve noticed is the fact there are plenty of fallacies regarding the banking institutions intentions if talking about foreclosure. One misconception in particular is the fact that the bank wishes to have your house. The lender wants your cash, not your home. They want the funds they gave you along with interest. Averting the bank will still only draw the foreclosed summary. Thanks for your post.

  2. CharlieMougs表示:

    kra30 сс – кракен войти, kra at

  3. CharlesLal表示:

    металлические значки под заказ металлические значки

  4. Peterclada表示:

    cialis prix Cialis sans ordonnance 24h Cialis en ligne tadalmed.com

  5. BillieLet表示:

    Acheter Cialis 20 mg pas cher: cialis generique – Cialis generique prix tadalmed.shop

  6. JeffreyEnups表示:

    сколько стоит металлический значок изготовление металлического значка

  7. CharlesLal表示:

    значок металлический с надписью https://metallicheskie-znachki-zakaz.ru/

  8. Bernardshoor表示:

    Cialis sans ordonnance 24h: Cialis sans ordonnance 24h – cialis sans ordonnance tadalmed.shop

  9. JeffreyEnups表示:

    металлический значок с эмалью изготовление металлических значков

  10. Электропривод для горизонтальных жалюзи отзывы
    электропривод для горизонтальных жалюзи электропривод для горизонтальных жалюзи .

  11. BillieLet表示:

    pharmacie en ligne sans ordonnance: Meilleure pharmacie en ligne – vente de mГ©dicament en ligne pharmafst.com

  12. Robertfap表示:

    http://tadalmed.com/# Cialis sans ordonnance 24h

  13. BradleyJaire表示:

    Pharmacie sans ordonnance: pharmacie en ligne – pharmacie en ligne fiable pharmafst.com

  14. Peterclada表示:

    Tadalafil achat en ligne cialis sans ordonnance Pharmacie en ligne Cialis sans ordonnance tadalmed.com

  15. Профессиональный сервисный центр по ремонту Apple iPhone в Москве.
    Мы предлагаем: сервисный центр iphone в москве
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  16. Robertfap表示:

    http://kamagraprix.com/# acheter kamagra site fiable

  17. Профессиональный сервисный центр по ремонту Apple iPhone в Москве.
    Мы предлагаем: ремонт телефонов айфон в москве адреса
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  18. Bernardshoor表示:

    achat kamagra: kamagra livraison 24h – acheter kamagra site fiable

  19. BillieLet表示:

    Cialis sans ordonnance pas cher: Cialis sans ordonnance pas cher – cialis generique tadalmed.shop

  20. Bernardshoor表示:

    Cialis sans ordonnance pas cher: cialis generique – Pharmacie en ligne Cialis sans ordonnance tadalmed.shop

  21. Bernardshoor表示:

    cialis sans ordonnance: Cialis generique prix – cialis prix tadalmed.shop

  22. BradleyJaire表示:

    pharmacie en ligne france pas cher: acheter mГ©dicament en ligne sans ordonnance – trouver un mГ©dicament en pharmacie pharmafst.com

  23. BradleyJaire表示:

    cialis sans ordonnance: cialis sans ordonnance – Achat Cialis en ligne fiable tadalmed.shop

  24. Peterclada表示:

    pharmacie en ligne france pas cher pharmacie en ligne pharmacie en ligne fiable pharmafst.shop

  25. Peterclada表示:

    Pharmacie sans ordonnance Pharmacie en ligne France pharmacie en ligne avec ordonnance pharmafst.shop

  26. BradleyJaire表示:

    cialis prix: cialis sans ordonnance – Acheter Cialis tadalmed.shop

  27. Peterclada表示:

    achat kamagra acheter kamagra site fiable achat kamagra

  28. Bernardshoor表示:

    Achat Cialis en ligne fiable: Cialis en ligne – Acheter Cialis 20 mg pas cher tadalmed.shop

發佈回覆給「DafsletsArcaftZeldSype」的留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。