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

34,995 Responses

  1. Louislen表示:

    http://apotekonlinerecept.com/# apotek online recept

  2. 늑대닷컴表示:

    This design is spectacular! You definitely know how to keep a reader entertained. Between your wit and your videos, I was almost moved to start my own blog (well, almost…HaHa!) Excellent job. I really loved what you had to say, and more than that, how you presented it. Too cool!

  3. Derekgroum表示:

    de online drogist kortingscode: Beste online drogist – Online apotheek Nederland met recept

  4. HomerFaw表示:

    https://apotheekmax.shop/# Online apotheek Nederland met recept

  5. Michaeltor表示:

    apotek online: apotek pa nett – apotek online recept

  6. 늑대닷컴表示:

    An fascinating discussion is worth comment. I think that you need to write more on this subject, it won’t be a taboo topic however usually individuals are not sufficient to talk on such topics. To the next. Cheers

  7. Quantum particles are excitations which deviate from this minimal potential energy state, due to this fact a vacuum state has no particles in it.

  8. 늑대닷컴表示:

    I have seen a lot of useful items on your web-site about personal computers. However, I’ve the thoughts and opinions that notebooks are still less than powerful more than enough to be a good selection if you often do jobs that require lots of power, such as video modifying. But for world wide web surfing, statement processing, and the majority of other common computer functions they are just fine, provided you can’t mind the tiny screen size. Many thanks for sharing your opinions.

  9. Michaeltor表示:

    Beste online drogist: Online apotheek Nederland met recept – Beste online drogist

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

  11. 늑대닷컴表示:

    You must take part in a contest for among the best blogs on the web. I’ll advocate this web site!

  12. HomerFaw表示:

    http://kamagrapotenzmittel.com/# Kamagra Oral Jelly kaufen

  13. 늑대닷컴表示:

    Thanks for the points you have shared here. Something else I would like to talk about is that computer system memory requirements generally increase along with other improvements in the technological know-how. For instance, whenever new generations of processor chips are introduced to the market, there is usually a matching increase in the scale preferences of both laptop memory along with hard drive space. This is because the program operated by these processor chips will inevitably surge in power to leverage the new technologies.

  14. Malcolmseern表示:

    Online apotheek Nederland zonder recept Apotheek Max Apotheek Max

  15. Louislen表示:

    https://apotheekmax.shop/# Betrouwbare online apotheek zonder recept

  16. HomerFaw表示:

    http://kamagrapotenzmittel.com/# Kamagra Oral Jelly kaufen

  17. 늑대닷컴表示:

    Youre so cool! I dont suppose Ive read something like this before. So nice to find any person with some original ideas on this subject. realy thanks for starting this up. this website is one thing that’s wanted on the internet, someone with a little bit originality. helpful job for bringing something new to the web!

  18. Michaeltor表示:

    Apotek hemleverans recept: Apotek hemleverans idag – Apoteket online

  19. Malcolmseern表示:

    apotek online recept Apotek hemleverans idag apotek online

  20. Louislen表示:

    https://apotheekmax.shop/# Apotheek online bestellen

  21. Derekgroum表示:

    apotek online: Apotek hemleverans idag – Apotek hemleverans idag

  22. Michaeltor表示:

    apotek online: apotek pa nett – apotek online recept

  23. HomerFaw表示:

    https://apotheekmax.com/# Apotheek online bestellen

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

  25. Louislen表示:

    http://kamagrapotenzmittel.com/# Kamagra Oral Jelly

  26. Does your website have a contact page? I’m having a tough time locating it but, I’d like to send you an e-mail. I’ve got some recommendations for your blog you might be interested in hearing. Either way, great website and I look forward to seeing it develop over time.

  27. Thanks for this excellent article. One other thing is that most digital cameras can come equipped with the zoom lens so that more or less of your scene to be included by simply ‘zooming’ in and out. These kinds of changes in {focus|focusing|concentration|target|the a**** length usually are reflected from the viewfinder and on huge display screen right on the back of the specific camera.

  28. Malcolmseern表示:

    Apotek hemleverans recept apotek pa nett Apoteket online

  29. Michaeltor表示:

    apotek pa nett: apotek pa nett – apotek online recept

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

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