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

  1. 12/5/2012 At the moment we’re getting a lot of people searching for the key phrase zappos promo code 2012 and ending up on our site.

  2. Please contact your airline earlier than travelling and confirm any requirements.

  3. Minimize the wooden. Start with the top panels and the cross rails.

  4. The activities you’d prefer to be concerned in while touring abroad will decide your choice of the very best journey shoes.

  5. Did you realize that women walking canes arrive in an assortment of types?

  6. Edisonanazy表示:

    pillole per erezioni fortissime: viagra senza ricetta – viagra originale recensioni

  7. Keep away from slicing grass too short, or “scalping,” which may weaken grass by decreasing its means to photosynthesize and increasing vulnerability to pests and disease.

  8. At Ft for all times, we solely carry 100 genuine UGG products.

  9. Regardless of version, it may show you how to to jot down out a backstory that provides your character some extra character and depth.

  10. The client is this system that runs in your laptop.

  11. On this zone, comply with the purple gentle going east until you see the Fox Shrine.

  12. Kotuko was run away from as soon as or twice by forgetting to block the sleigh when he stopped; and he broke many lashings, and ruined a number of thongs earlier than he could possibly be trusted with a full group of eight and the sunshine sleigh.

  13. ROKU: add the channel from the ROKU store or by searching for WUSA9.

  14. LouisFoums表示:

    farmaci senza ricetta elenco: Cialis generico 20 mg 8 compresse prezzo – comprare farmaci online all’estero

  15. Distributors count on to get lots of bang for his or her buck from having a big marketing marketing campaign and a huge opening weekend.

  16. EdwardMet表示:

    acquistare farmaci senza ricetta Farmacie on line spedizione gratuita acquisto farmaci con ricetta

  17. You will need to scroll right down to the heading for the SVG & PNG Download, the place you will note a link in a mild blue box to download the file.

  18. Edisonanazy表示:

    farmacie online sicure: Farmacie che vendono Cialis senza ricetta – comprare farmaci online all’estero

  19. Be very cautious when trying to find “spells to win the lottery”.

  20. Employers sometimes bear the brunt of the expense for medical insurance, however individuals are paying increasingly every year as well.

  21. Justifiably, Kay was given an additional 12 months as an example 2000’s Goblet of Fire, a novel twice the dimensions of its predecessor and a e-book that triggered Rowling herself a lot problem (working at lightspeed towards significant publisher stress, a plot hole pressured the creator to rewrite a large proportion of the ebook).

  22. LouisFoums表示:

    п»їFarmacia online migliore: Farmacie on line spedizione gratuita – farmacia online

  23. Your palate wants some education, and that’s the other nice thing about brewery taste rooms-you be taught by doing!

  24. Antarctica Basic tour requires that you have ample and valid travel insurance coverage covering medical and personal accidents, including repatriation costs and emergency evacuation.

  25. My husband doesn’t feel the necessity to collect useless family members, perhaps because he has completely satisfactory members of the family nonetheless amongst the dwelling, and that’s enough.

  26. WineZap is a wine search engine – give worth to your users by giving them an easy approach to find wine you discuss.

  27. It’s a must-have characteristic now that USB-C is extra generally used, particularly on enterprise-oriented computer merchandise.

  28. No matter your fashion happens to be, chances are Native has the strolling shoe so that you can make traveling the world more comfy.

發佈留言

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