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

36,699 Responses

  1. Thank you ever so for you post.Really thank you! Want more.

  2. TimothyDok表示:

    onlinecanadianpharmacy 24 USACanadaPharm canadian pharmacies

  3. Albertbiave表示:

    https://usacanadapharm.shop/# USACanadaPharm

  4. Dwightkak表示:

    usa canada pharm: canadian pharmacy 24h com safe – usa canada pharm

  5. DavidCak表示:

    Overbets.ru предлагает вашему вниманию информацию о букмекерских конторах со всего мира. https://overbets.ru/

  6. StephenCer表示:

    USACanadaPharm: usa canada pharm – canadian pharmacy 365

  7. Thanks for the new stuff you have uncovered in your post. One thing I would like to comment on is that FSBO interactions are built with time. By releasing yourself to the owners the first saturday and sunday their FSBO is usually announced, prior to masses start off calling on Monday, you build a good interconnection. By sending them tools, educational components, free records, and forms, you become a great ally. By using a personal curiosity about them and their scenario, you make a solid interconnection that, oftentimes, pays off once the owners decide to go with a realtor they know along with trust – preferably you actually.

  8. Albertbiave表示:

    https://usacanadapharm.shop/# canadian online drugstore

  9. Status App AI表示:

    A big thank you for your blog.Much thanks again. Keep writing.

  10. Very good post.Really thank you! Much obliged.

  11. TimothyDok表示:

    canadian pharmacy prices vipps approved canadian online pharmacy canadapharmacyonline com

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

  13. Albertbiave表示:

    https://usacanadapharm.com/# usa canada pharm

  14. StephenCer表示:

    canadian pharmacy com: usa canada pharm – USACanadaPharm

  15. Albertbiave表示:

    https://usacanadapharm.com/# northwest canadian pharmacy

  16. to read more表示:

    I do agree with all the ideas you’ve presented in your post. They are really convincing and will certainly work. Still, the posts are too short for starters. Could you please extend them a bit from next time? Thanks for the post.

  17. Dwightkak表示:

    USACanadaPharm: usa canada pharm – legit canadian pharmacy

  18. StephenCer表示:

    best rated canadian pharmacy: USACanadaPharm – USACanadaPharm

  19. Samuelcuh表示:

    usa canada pharm: canadian drugs – usa canada pharm

  20. Albertbiave表示:

    https://usacanadapharm.shop/# recommended canadian pharmacies

  21. StephenCer表示:

    the canadian drugstore: canadian pharmacy world reviews – online canadian pharmacy review

  22. TimothyDok表示:

    canadian pharmacy 24h com usa canada pharm canadian drug prices

  23. Samuelcuh表示:

    usa canada pharm: canadian pharmacy – USACanadaPharm

  24. I really like and appreciate your post.Really looking forward to read more. Will read on…

  25. Dwightkak表示:

    legit canadian online pharmacy: USACanadaPharm – canadian pharmacy 24h com

  26. Albertbiave表示:

    https://usacanadapharm.shop/# USACanadaPharm

  27. whoah this weblog is fantastic i like studying your posts. Keep up the great paintings! You understand, a lot of people are looking round for this information, you could help them greatly.

  28. whoah this weblog is wonderful i love studying your posts. Keep up the good paintings! You realize, lots of individuals are looking around for this information, you could help them greatly.

  29. TimothyDok表示:

    medication canadian pharmacy USACanadaPharm northern pharmacy canada

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

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