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,715 Responses

  1. Georgefig表示:

    Смотреть здесь vodkabet

  2. Samuelcuh表示:

    usa canada pharm: USACanadaPharm – usa canada pharm

  3. Georgefig表示:

    можно проверить ЗДЕСЬ зеркало vodkabet

  4. Albertbiave表示:

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

  5. StephenCer表示:

    canadian neighbor pharmacy: usa canada pharm – canadianpharmacymeds

  6. Samuelcuh表示:

    canadian pharmacy online reviews: USACanadaPharm – best rated canadian pharmacy

  7. Thanks for the helpful content. It is also my belief that mesothelioma has an extremely long latency period, which means that signs and symptoms of the disease may not emerge until eventually 30 to 50 years after the preliminary exposure to asbestos. Pleural mesothelioma, that’s the most common style and affects the area around the lungs, could potentially cause shortness of breath, upper body pains, along with a persistent cough, which may lead to coughing up maintain.

  8. Thanks for your publication on this blog. From my own personal experience, there are occassions when softening upwards a photograph may provide the photography with a little an artistic flare. Oftentimes however, the soft cloud isn’t precisely what you had as the primary goal and can frequently spoil a normally good photograph, especially if you intend on enlarging it.

  9. Samuelcuh表示:

    USACanadaPharm: canadian pharmacy world – usa canada pharm

  10. Dwightkak表示:

    USACanadaPharm: usa canada pharm – canadian drugs online

  11. Albertbiave表示:

    https://usacanadapharm.shop/# USACanadaPharm

  12. TimothyDok表示:

    onlinecanadianpharmacy usa canada pharm canadian king pharmacy

  13. Hi, Neat post. There is a problem with your site in internet explorer, would test this? IE still is the market leader and a big portion of people will miss your excellent writing due to this problem.

  14. Albertbiave表示:

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

  15. Samuelcuh表示:

    canada discount pharmacy: USACanadaPharm – usa canada pharm

  16. StephenCer表示:

    USACanadaPharm: best rated canadian pharmacy – USACanadaPharm

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

  18. TimothyDok表示:

    usa canada pharm USACanadaPharm usa canada pharm

  19. Samuelcuh表示:

    northern pharmacy canada: ed meds online canada – USACanadaPharm

  20. Dwightkak表示:

    USACanadaPharm: USACanadaPharm – canadian pharmacy phone number

  21. Dwightkak表示:

    canadian neighbor pharmacy: usa canada pharm – canadian family pharmacy

  22. deepseek表示:

    Great, thanks for sharing this post.Really looking forward to read more. Cool.

  23. One thing is that one of the most popular incentives for applying your credit cards is a cash-back or rebate provision. Generally, you’re going to get 1-5 back in various buying. Depending on the card, you may get 1 back again on most acquisitions, and 5 back again on expenses made from convenience stores, gas stations, grocery stores and also ‘member merchants’.

  24. Dwightkak表示:

    online canadian pharmacy: canadianpharmacymeds com – best online canadian pharmacy

  25. Albertbiave表示:

    http://usacanadapharm.com/# canadapharmacyonline

  26. StephenCer表示:

    USACanadaPharm: canadian pharmacies – vipps approved canadian online pharmacy

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

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