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

16,845 Responses

  1. By the time he completed his apprenticeship the Civil battle was at its top and he shared the zeal and ardor of his section of the nation in behalf of the Union.

  2. Dog-training courses begin the day you carry your pet home.

  3. 合気熟語表示:

    We said, “In the morning we shall go there.” Before daybreak we donned our best garments and besought the servant to lead us within the direction of the cry.

  4. The track elimination mission grew to become part of the mayoral marketing campaign of 1907.

  5. Здесь можно преобрести сейф москва сейф

  6. Calgary, Alberta has adopted “Curbside” Recycling and uses blue bins.

  7. John Gordon Liverman. For services to the Volta River Mission Preparatory Commission, Gold Coast.

  8. The market strikes fast, but Zoom strikes sooner.

  9. Margolis famous that the railroad was open to “cheap calls for”.

  10. Uazrezb表示:

    Как приобрести аттестат о среднем образовании в Москве и других городах

    bike-uk.co.uk/gde-kupit-diplom-moskva.html

  11. A number of trucks had been looted at gunpoint, despite the truce.

  12. CurtisCem表示:

    cheapest Kamagra Kam Pharm kam pharm shop kamagra

  13. In line with a survey carried out by Caixin Online, Huang Yichuan’s mother and father divorced when he was a toddler.

  14. Celtic’s degree of consistency and energy of squad is ahead of Rangers.

  15. I used to be suggested this website via my cousin. I am now not sure whether this post is written through him as nobody else recognize such specified approximately my problem. You are amazing! Thank you!

  16. Simone Höhl (2016-12-27). “Freiburg: Korrektur: Lassbergstraße heißt jetzt Laßbergstraße” (in German).

  17. The one entered the UK Singles Chart on download gross sales alone at number 18.

  18. In the fourth week, the one fell to quantity 4 and then number eleven in its fifth week.

  19. Appearing Captain Harry Ernest Huston Nicholls, OBE, DSC.

  20. LloydNoice表示:

    http://erepharm.com/# ED pills non prescription

  21. Whichever team that successfully passes essentially the most missions will win.

  22. The EU’s nature restoration legislation, which barely scraped by means of the legislative course of, was heavily watered down in an try and appease farmers.

  23. It is appropriate time to make some plans for the long run and it’s time to be happy. I’ve read this post and if I may I wish to counsel you few fascinating things or advice. Maybe you could write subsequent articles regarding this article. I desire to read even more things about it!

  24. Amongst Us is an easy homicide thriller sport that’s easy to choose up and is now out there for free on iOS and Android.

  25. Agius called for concrete solutions and collaboration to support Maltese agriculture, acknowledging the courage displayed by farmers and herdsmen in demanding change.

  26. The group started as an novice soccer membership in 1890 and was composed primarily of locals before several paid players were added for 1895.

  27. It starts with smooth whites that look mellowed by the years into pale bisque, linen, or oyster.

  28. No investor desires to expose their funds to overly dangerous investments.

  29. What Units Japanese Towels Other than Others?

發佈留言

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