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

35,117 Responses

  1. Derekgroum表示:

    kamagra: kamagra – Kamagra Gel

  2. Ipldasty表示:

    don’t think anything
    _________________
    ipl-2025

  3. HomerFaw表示:

    https://kamagrapotenzmittel.shop/# Kamagra kaufen ohne Rezept

  4. Michaeltor表示:

    ApotheekMax: ApotheekMax – Online apotheek Nederland met recept

  5. Derekgroum表示:

    Apotek hemleverans idag: Apoteket online – Apoteket online

  6. HomerFaw表示:

    https://apotheekmax.com/# de online drogist kortingscode

  7. Malcolmseern表示:

    apotek pa nett Apotek hemleverans recept Apotek hemleverans idag

  8. Joshuahaido表示:

    Recomendo o jogo a todos Tiger

  9. Michaeltor表示:

    Apoteket online: Apotek hemleverans idag – apotek online recept

  10. JosephFluor表示:

    Смотреть здесь https://futbolka-trenbolon.ru

  11. To save time and money, staff within the Waste Administration recycling facility will search out and throw away anything contaminated with food or liquid.

  12. Derekgroum表示:

    Kamagra kaufen ohne Rezept: Kamagra kaufen – Kamagra Gel

  13. Malcolmseern表示:

    Kamagra online bestellen Kamagra Oral Jelly kaufen Kamagra kaufen

  14. 늑대닷컴表示:

    Its like you read my mind! You appear to know a lot about this, like you wrote the book in it or something. I think that you could do with some pics to drive the message home a little bit, but other than that, this is wonderful blog. A great read. I’ll definitely be back.

  15. Davidmeast表示:

    взгляните на сайте здесь https://futbolka-mem.ru

  16. 늑대닷컴表示:

    Your web page does not display correctly on my iphone 4 – you might wanna try and repair that

  17. JosephFluor表示:

    нажмите здесь https://futbolka-y2k.ru

  18. Michaeltor表示:

    Apotheek online bestellen: Online apotheek Nederland zonder recept – ApotheekMax

  19. Louislen表示:

    https://apotekonlinerecept.com/# Apotek hemleverans idag

  20. Davidmeast表示:

    продолжить https://futbolka-alt.ru

  21. 늑대닷컴表示:

    I have discovered that fees for online degree gurus tend to be a fantastic value. Like a full College Degree in Communication with the University of Phoenix Online consists of 60 credits from $515/credit or $30,900. Also American Intercontinental University Online comes with a Bachelors of Business Administration with a full education course element of 180 units and a cost of $30,560. Online studying has made getting the college diploma been so cool because you may earn your own degree through the comfort in your home and when you finish from office. Thanks for all your other tips I have really learned through the blog.

  22. Michaeltor表示:

    Beste online drogist: de online drogist kortingscode – online apotheek

  23. Malcolmseern表示:

    Apoteket online Apotek hemleverans recept Apotek hemleverans recept

  24. Derekgroum表示:

    apotek online recept: apotek pa nett – apotek online recept

  25. 늑대닷컴表示:

    I like the helpful information you provide in your articles. I?ll bookmark your weblog and check again here frequently. I am quite certain I will learn plenty of new stuff right here! Best of luck for the next!

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

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