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

37,698 Responses

  1. Aaronbus表示:

    garuda888 slot garuda888 slot Kasino mendukung permainan bertanggung jawab

  2. ThomasThype表示:

    Kasino selalu memperbarui mesin slotnya: preman69 – preman69.tech

  3. Thanks for the tips about credit repair on this excellent web-site. What I would offer as advice to people will be to give up the particular mentality that they may buy right now and pay later. As a society we tend to make this happen for many factors. This includes trips, furniture, along with items we wish. However, it is advisable to separate the wants out of the needs. While you are working to improve your credit score you really have to make some trade-offs. For example you may shop online to save cash or you can go to second hand suppliers instead of costly department stores for clothing.

  4. ThomasThype表示:

    Mesin slot sering diperbarui dengan game baru: BonaSlot – BonaSlot

  5. Appreciating the dedication you put into your website and in depth information you present. It’s nice to come across a blog every once in a while that isn’t the same old rehashed information. Great read! I’ve saved your site and I’m adding your RSS feeds to my Google account.

  6. DavidCooth表示:

    http://slot88.company/# Slot dengan pembayaran tinggi selalu diminati

  7. Williecrady表示:

    Mesin slot menawarkan berbagai tema menarik http://slot88.company/# Jackpot progresif menarik banyak pemain

  8. ThomasThype表示:

    Permainan slot mudah dipahami dan menyenangkan: slot demo – slot demo

  9. Williecrady表示:

    Jackpot besar bisa mengubah hidup seseorang https://slot88.company/# Kasino menawarkan pengalaman bermain yang seru

  10. DavidCooth表示:

    http://slot88.company/# Mesin slot dapat dimainkan dalam berbagai bahasa

  11. Williecrady表示:

    Beberapa kasino memiliki area khusus untuk slot http://garuda888.top/# Slot klasik tetap menjadi favorit banyak orang

  12. Aaronbus表示:

    preman69.tech preman69.tech Jackpot besar bisa mengubah hidup seseorang

  13. DavidCooth表示:

    https://bonaslot.site/# Slot menjadi daya tarik utama di kasino

  14. Williecrady表示:

    Slot dengan fitur interaktif semakin banyak tersedia https://garuda888.top/# Slot memberikan kesempatan untuk menang besar

  15. DavidCooth表示:

    https://garuda888.top/# Kasino mendukung permainan bertanggung jawab

  16. I’m really enjoying the design and layout of your site. It’s a very easy on the eyes which makes it much more pleasant for me to come here and visit more often. Did you hire out a designer to create your theme? Outstanding work!

  17. ThomasThype表示:

    Kasino menawarkan pengalaman bermain yang seru: BonaSlot – bonaslot.site

  18. In the commodity trading there is least trading size so you need to purchase or sell certain size.

  19. ThomasThype表示:

    Mesin slot sering diperbarui dengan game baru: demo slot pg – akun demo slot

  20. Williecrady表示:

    Slot menjadi bagian penting dari industri kasino http://slotdemo.auction/# Mesin slot sering diperbarui dengan game baru

  21. Williecrady表示:

    Slot dengan fitur interaktif semakin banyak tersedia http://bonaslot.site/# Banyak kasino memiliki program loyalitas untuk pemain

  22. DavidCooth表示:

    https://slotdemo.auction/# Pemain sering mencoba berbagai jenis slot

  23. ThomasThype表示:

    Kasino memiliki suasana yang energik dan menyenangkan: akun demo slot – slot demo

  24. Someone essentially lend a hand to make severely articles I’d state. This is the first time I frequented your website page and up to now? I surprised with the research you made to make this particular publish incredible. Wonderful task!

  25. Williecrady表示:

    Slot klasik tetap menjadi favorit banyak orang http://garuda888.top/# Kasino di Bali menarik banyak pengunjung

  26. DavidCooth表示:

    http://bonaslot.site/# Slot menjadi daya tarik utama di kasino

  27. ThomasThype表示:

    Jackpot besar bisa mengubah hidup seseorang: preman69.tech – preman69.tech

  28. Thanks for giving your ideas. The one thing is that college students have an option between government student loan along with a private education loan where it is easier to choose student loan debt consolidation reduction than in the federal student loan.

發佈留言

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