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

28,029 Responses

  1. BrandonJag表示:

    where can i buy amoxicillin online: buy amoxicillin online without prescription – buy amoxicillin 500mg canada

  2. BrandonJag表示:

    can you buy generic clomid price: generic clomid without insurance – can i purchase generic clomid prices

  3. BrandonJag表示:

    over the counter amoxicillin: Amo Health Pharm – amoxicillin 500 capsule

  4. JustinTam表示:

    order clomid without rx: ClmHealthPharm – order clomid

  5. VirgilBlawl表示:

    22 doxycycline DoxHealthPharm doxycycline hyclate 100 mg cap

  6. I know this if off topic but I’m looking into starting my own blog and was curious what all is needed to get set up? I’m assuming having a blog like yours would cost a pretty penny? I’m not very internet smart so I’m not 100 certain. Any suggestions or advice would be greatly appreciated. Many thanks

  7. Wonderful web site. A lot of helpful info here. I?m sending it to some buddies ans additionally sharing in delicious. And obviously, thank you to your sweat!

  8. I like what you guys are up also. Such intelligent work and reporting! Keep up the superb works guys I?ve incorporated you guys to my blogroll. I think it will improve the value of my site 🙂

  9. Whoa! This blog looks exactly like my old one! It’s on a entirely different topic but it has pretty much the same layout and design. Wonderful choice of colors!

  10. JustinTam表示:

    cost generic clomid pill: ClmHealthPharm – can i purchase cheap clomid without rx

  11. Briantrozy表示:

    amoxicillin 500mg buy online canada: amoxicillin without rx – amoxicillin pills 500 mg

  12. It?s actually a great and helpful piece of information. I?m happy that you simply shared this useful info with us. Please stay us up to date like this. Thank you for sharing.

  13. JustinTam表示:

    where to get zithromax: zithromax 500mg price in india – how much is zithromax 250 mg

  14. Roberttic表示:

    http://clmhealthpharm.com/# where to buy cheap clomid prices

  15. BrandonJag表示:

    can you buy clomid without a prescription: ClmHealthPharm – where to buy clomid tablets

  16. JustinTam表示:

    clomid without insurance: ClmHealthPharm – order generic clomid online

  17. Roberttic表示:

    https://clmhealthpharm.shop/# can i buy generic clomid now

  18. A thousand years after the Darkish Lord’s loss of life, Exar Kun summoned Ragnos from his grave through using talismans.

  19. Briantrozy表示:

    zithromax for sale us: Zithro Pharm – zithromax 250 mg australia

  20. The following time I read a blog, I hope that it doesnt disappoint me as a lot as this one. I imply, I know it was my choice to learn, but I truly thought youd have something interesting to say. All I hear is a bunch of whining about something that you can fix if you happen to werent too busy looking for attention.

  21. His performance at Lierse led the membership begin negotiations over a brand new contract.

  22. BrandonJag表示:

    get generic clomid without rx: ClmHealthPharm – cheap clomid prices

  23. BrandonJag表示:

    can i buy amoxicillin over the counter: amoxicillin order online no prescription – amoxacillian without a percription

  24. Briantrozy表示:

    cost doxycycline tablets: doxycycline online australia – doxycycline prescription coupon

  25. BrandonJag表示:

    where can i get doxycycline over the counter: rx doxycycline – doxycycline 150mg pill

  26. 虚ろ 意味表示:

    The Schuylkill River has been a plot level in several episodes of It is At all times Sunny in Philadelphia.

  27. Roberttic表示:

    https://doxhealthpharm.shop/# doxycycline 3626

發佈留言

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