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

  1. JosephFam表示:

    lasix for sale: buy furosemide – generic lasix

  2. zentai表示:

    Hola! I’ve been following your weblog for some time now and finally got the courage to go ahead and give you a shout out from New Caney Tx! Just wanted to tell you keep up the fantastic job!

  3. Davidmer表示:

    furosemide 40mg: cheap lasix – lasix generic name

  4. JosephWrela表示:

    neurontin 50 mg: neurontin 400mg – how to get neurontin cheap

  5. Davidmer表示:

    buy rybelsus: rybelsus – rybelsus price

  6. Davidmer表示:

    furosemida 40 mg: furosemide online – furosemida

  7. zentai表示:

    Excellent post. I was checking constantly this blog and I am impressed! Very helpful info specifically the last part 🙂 I care for such info a lot. I was looking for this particular information for a very long time. Thank you and best of luck.

  8. zentai表示:

    What i do not realize is actually how you are not really much more well-liked than you may be now. You are so intelligent. You realize thus significantly relating to this subject, made me personally consider it from so many varied angles. Its like women and men aren’t fascinated unless it is one thing to do with Lady gaga! Your own stuffs excellent. Always maintain it up!

  9. zentai表示:

    Thank you for any other informative blog. The place else may I am getting that type of info written in such a perfect way? I’ve a mission that I am just now operating on, and I have been on the glance out for such info.

  10. zentai表示:

    Hey there, You have done an excellent job. I?ll certainly digg it and personally suggest to my friends. I am confident they’ll be benefited from this website.

  11. JosephFam表示:

    prednisone 10 mg canada: 6 prednisone – prednisone buying

  12. сервисный центре предлагает мастерские по ремонту телевизоров в москве – сколько стоит ремонт телевизора

  13. JosephWrela表示:

    how much is prednisone 10 mg: how can i get prednisone – buy 40 mg prednisone

  14. zentai表示:

    I found your weblog website on google and test a number of of your early posts. Proceed to keep up the very good operate. I just extra up your RSS feed to my MSN News Reader. Searching for forward to reading extra from you later on!?

  15. JosephWrela表示:

    neurontin 800 mg price: neurontin 600 – neurontin price australia

  16. JosephFam表示:

    prescription price for neurontin: neurontin 800 mg price – neurontin 200

  17. zentai表示:

    I have recently started a website, the information you provide on this web site has helped me tremendously. Thank you for all of your time & work.

  18. zentai表示:

    Thanks for discussing your ideas. One thing is that scholars have a solution between national student loan along with a private education loan where it truly is easier to go with student loan online debt consolidation than in the federal student loan.

  19. Arenda_foka表示:

    Лучшие предложения по аренде квартир на сутки|Выберите лучшее жилье на короткий срок|Уютные апартаменты с арендой на сутки|Резервируйте жилье на сутки онлайн|Быстрая аренда квартиры на сутки для вашего комфорта|Лучшие варианты аренды жилья на короткий срок|Привлекательные варианты аренды квартир на сутки|Бронирование квартир на сутки без лишних хлопот|Выбирайте лучшие квартиры для короткого проживания|Выберите комфортное жилье на короткий срок|Выбор апартаментов на короткий срок для вашего отдыха|Находите лучшие варианты жилья и бронируйте сейчас|Эксклюзивные варианты аренды квартир на сутки|Выбор квартир на короткий срок для вашего отдыха|Уникальные предложения аренды квартир на сутки|Простой способ аренды жилья на сутки|Идеальные варианты жилья на сутки для вашего отдыха|Привлекательные квартиры на сутки для вашего отпуска|Выбор идеальных квартир для короткого проживания|Уютные жилье на сутки по лучшим ценам
    квартиры гомель посуточно квартиры гомель посуточно .

  20. zentai表示:

    Great post. I was checking constantly this weblog and I’m inspired! Extremely helpful info specially the closing part 🙂 I take care of such info a lot. I was seeking this certain info for a very lengthy time. Thanks and best of luck.

  21. zentai表示:

    I am often to running a blog and i actually respect your content. The article has really peaks my interest. I am going to bookmark your web site and hold checking for brand new information.

  22. zentai表示:

    Thanks a lot for sharing this with all people you actually know what you’re talking approximately! Bookmarked. Please also visit my website =). We will have a link exchange agreement among us!

  23. Sergiohex表示:

    http://rybelsus.tech/# Semaglutide pharmacy price

  24. Sergiohex表示:

    https://rybelsus.tech/# rybelsus cost

  25. Если вы искали где отремонтировать сломаную технику, обратите внимание – профи воронеж

  26. Thanks for revealing your ideas. I would also like to convey that video games have been ever before evolving. Better technology and innovative developments have aided create authentic and enjoyable games. These kind of entertainment games were not actually sensible when the real concept was being experimented with. Just like other styles of know-how, video games as well have had to advance by many decades. This itself is testimony for the fast progression of video games.

  27. zentai表示:

    Magnificent goods from you, man. I have understand your stuff previous to and you’re just too great. I really like what you’ve acquired here, certainly like what you are saying and the way in which you say it. You make it entertaining and you still care for to keep it smart. I can not wait to read much more from you. This is actually a great site.

  28. JosephFam表示:

    ventolin.com: Ventolin inhaler – ventolin pill

  29. JosephWrela表示:

    buy prednisone 50 mg: prednisone 30 – online prednisone

發佈留言

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