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

15,874 Responses

  1. 煙力 株価表示:

    Lee in the Lowcountry, Daniel J. Crooks, Jr., Historical past Press 2010) 4Stone, H. David (2008).

  2. We may even offer you well designed high quality banners, textual content links and HTML adverts.

  3. Choosing the proper pencil would possibly get tricky.

  4. Philatelists Online, California U.S.A.

  5. Whereas very player gets a bit of the motion, the Dungeon Grasp (DM) is the one who holds all of it together.

  6. Nicoletta’s Desk and Marketplace is a small neighborhood trattoria and market situated in Lake Oswego, Oregon – very like one found on any avenue nook in Italy.

  7. In its natural state, invertase is what bees use to make honey from nectar.

  8. For each Apple Television and Fire Television, seek for “WUSA9” to seek out the free app so as to add to your account.

  9. Pakistani meals takes an exceptionally long time to prepare and the specials, like the stewed meat shank dish nihari (from the Arabic phrase for “day”), can take hours to cook.

  10. Having the Allbirds Tree Runners on foot really allowed our toes to splay out nicely.

  11. Charlesrab表示:

    pharmacie en ligne france fiable Cialis generique prix acheter mГ©dicament en ligne sans ordonnance

  12. As a result of the last thing you want when touring is stinky feet, consider packing an odor fighting product on your footwear.

  13. 雷天気図表示:

    No matter what journey you’re happening or how long you’re away, I can guarantee you that two or three pairs of shoes are more than sufficient.

  14. The Intruder Shoe is designed with upper panels of tender nylon that help to shave a bit weight off and offer some breathability.

  15. ppm 投資表示:

    An effective and lighter-weight various to a gum blanket is a painted cloth (“oilcloth”), corresponding to was issued to many Union and Confederate soldiers.

  16. Elastic can be tricky, however these sandals sort out it with ease, offering a great quantity of stretch, a feeling of safety, and the flexibility to stay in place without being too restrictive or cutting off circulation.

  17. You may purchase one at a garden middle or use a topless espresso can.

  18. “The benefit of being armed, which the Individuals possess over the folks of almost every different nation …

  19. HeathZex表示:

    vente de mГ©dicament en ligne: pharmacie en ligne livraison europe – Pharmacie sans ordonnance

  20. Leopoldo表示:

    Here is my website :: Daycare Near Me By State (Leopoldo)

  21. HeathZex表示:

    п»їpharmacie en ligne france: cialis prix – Pharmacie Internationale en ligne

  22. So if you have the uncooked energy required to produce 4K eye sweet, then the following fashions are your best bets if you happen to desire a UHD display for gaming.

  23. By protecting employees healthier, they will decrease medical costs.

  24. For infantrymen, gum blankets had been far more frequent than ponchos.

  25. HeathZex表示:

    Pharmacie sans ordonnance: Pharmacie en ligne livraison Europe – pharmacie en ligne fiable

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

  27. In certain conditions, withdrawal symptoms necessitate the presence of a doctor to help you get the treatment you need.

  28. Let your candle burn out.

  29. However I want to present a shout out to everyone on our excellent workers, who’ve all finished a superb job of maintaining issues going by way of this frigid weather.

  30. The intellectual rephrasing of those questions is: What vital reality do very few individuals agree with you on?

發佈留言

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