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

39,079 Responses

  1. ScottTrefs表示:

    cialis interactions: Tadal Access – cialis 800 black canada

  2. Hello there, just became alert to your blog through Google, and found that it is really informative. I am gonna watch out for brussels. I will be grateful if you continue this in future. Lots of people will be benefited from your writing. Cheers!

  3. Frankiegeops表示:

    https://tadalaccess.com/# cialis 100mg from china

  4. LorenOmigo表示:

    what is the use of tadalafil tablets: TadalAccess – order cialis from canada

  5. Frankiegeops表示:

    https://tadalaccess.com/# what does cialis treat

  6. Josephmew表示:

    whats the max safe dose of tadalafil xtenda for a healthy man TadalAccess tadalafil 40 mg with dapoxetine 60 mg

  7. ScottTrefs表示:

    canadian pharmacy cialis 20mg: Tadal Access – cialis onset

  8. ufabet789表示:

    799619 10603There is noticeably a bundle to know about this. I assume you produced certain good points in features also 169767

  9. Josephmew表示:

    brand cialis TadalAccess best time to take cialis 5mg

  10. LorenOmigo表示:

    cialis for daily use reviews: maximum dose of cialis in 24 hours – buy cialis canadian

  11. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали ремонт холодильников gorenje сервис, можете посмотреть на сайте: ремонт холодильников gorenje в москве
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  12. Frankiegeops表示:

    https://tadalaccess.com/# india pharmacy cialis

  13. JacobGausy表示:

    Playing Aviator Game in Batery Bookmaker Actors aviatorbatery.in in India.
    aviatorbatery.in

  14. Профессиональный сервисный центр по ремонту техники в Уфе.
    Мы предлагаем: Ремонт моноблоков HP с гарантией
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

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

  16. Thanks for the a new challenge you have disclosed in your short article. One thing I’d prefer to comment on is that FSBO associations are built over time. By introducing yourself to the owners the first end of the week their FSBO is announced, prior to masses begin calling on Wednesday, you create a good connection. By giving them instruments, educational products, free accounts, and forms, you become a great ally. By taking a personal fascination with them along with their circumstances, you develop a solid connection that, many times, pays off if the owners opt with an adviser they know along with trust – preferably you.

  17. Hi there, just became alert to your blog through Google, and found that it’s really informative. I am gonna watch out for brussels. I will appreciate if you continue this in future. Lots of people will be benefited from your writing. Cheers!

  18. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали ремонт холодильников gorenje рядом, можете посмотреть на сайте: ремонт холодильников gorenje цены
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  19. Hello There. I found your weblog the usage of msn. That is a really smartly written article. I will be sure to bookmark it and come back to learn extra of your helpful info. Thank you for the post. I?ll definitely return.

  20. More posts like this would make the blogosphere better.

  21. ScottTrefs表示:

    where can i buy cialis on line: tadalafil generic in usa – cialis windsor canada

  22. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали ремонт холодильников gorenje в москве, можете посмотреть на сайте: ремонт холодильников gorenje сервис
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  23. Sergiosweak表示:

    Playing Aviator Regatta in Batery aviatorbatery.in Bookmaker Retinue in India.
    aviatorbatery.in

  24. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали ремонт холодильников gorenje в москве, можете посмотреть на сайте: ремонт холодильников gorenje
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

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

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