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...

32,436 Responses

  1. Williamuniot表示:

    пин ап зеркало – пин ап вход

  2. JesseDex表示:

    пин ап: https://pinupkz.life/

  3. JeffreyVot表示:

    как создать аккаунт на Кракен – доступ к Кракен через TOR браузер, кракен зеркало

  4. Jamesavata表示:

    pinup 2025 – пин ап казино

  5. Dwayneseisa表示:

    Kamagra Kamagra Kopen Online kamagra pillen kopen

  6. Williamuniot表示:

    пин ап вход – пин ап

  7. Dwayneseisa表示:

    Kamagra kamagra kopen nederland Officiele Kamagra van Nederland

  8. JesseDex表示:

    пин ап казино официальный сайт: https://pinupkz.life/

  9. Claus Vester Nelson survived to have his personal household.

  10. Williamuniot表示:

    пин ап казино – пинап казино

  11. JesseDex表示:

    пин ап: https://pinupkz.life/

  12. Dwayneseisa表示:

    TadalafilEasyBuy.com cialis without a doctor prescription Tadalafil Easy Buy

  13. Jamesavata表示:

    пин ап зеркало – pinup 2025

  14. Williamuniot表示:

    пинап казино – пин ап казино официальный сайт

  15. Jamesavata表示:

    пин ап вход – пин ап зеркало

  16. Dwayneseisa表示:

    Generic 100mg Easy buy generic 100mg viagra online Generic100mgEasy

  17. huvip88表示:

    Another thing is that when evaluating a good on the web electronics store, look for online stores that are frequently updated, retaining up-to-date with the most up-to-date products, the best deals, as well as helpful information on services. This will make certain you are doing business with a shop which stays ahead of the competition and provide you what you should need to make knowledgeable, well-informed electronics buys. Thanks for the essential tips I have really learned through the blog.

  18. Williamuniot表示:

    pinup 2025 – пин ап вход

  19. You surely know that the interest income from your bank FDs are taxed at the highest tax slab applicable to you as an individual right?

  20. JesseDex表示:

    пин ап казино официальный сайт: https://pinupkz.life/

  21. Jamesavata表示:

    pinup 2025 – пин ап

  22. Williamuniot表示:

    pinup 2025 – пин ап казино

  23. Dwayneseisa表示:

    Generic Tadalafil 20mg price TadalafilEasyBuy.com Tadalafil Easy Buy

  24. JesseDex表示:

    пин ап казино официальный сайт: https://pinupkz.life/

  25. JesseDex表示:

    пинап казино: https://pinupkz.life/

  26. Williamuniot表示:

    pinup 2025 – пин ап вход

  27. Jamesavata表示:

    пин ап казино – пин ап казино зеркало

  28. Williamuniot表示:

    пинап казино – пин ап

  29. JesseDex表示:

    пин ап казино зеркало: https://pinupkz.life/

發佈回覆給「貿易摩擦とは」的留言 取消回覆

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