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

31,802 Responses

  1. Montebeera表示:

    canadianpharmacyworld Online pharmacy USA canadian pharmacy reviews

  2. JamesGag表示:

    IndiaMedFast.com: india pharmacy without prescription – india online pharmacy store

  3. Montebeera表示:

    mexican drug stores online reliable mexican pharmacies Mexican Pharm Inter

  4. Howardenace表示:

    canada pharmacy online: legitimate canadian pharmacies online – best canadian online pharmacy

  5. Arthurhow表示:

    https://indiamedfast.com/# India Med Fast
    canadian drug pharmacy

  6. Arthurhow表示:

    https://interpharmonline.com/# best online canadian pharmacy
    canadian pharmacy store

  7. Williszew表示:

    https://indiamedfast.com/# India Med Fast

  8. JamesGag表示:

    lowest prescription prices online india: online medicine shopping in india – india online pharmacy store

  9. AlbertAxoge表示:

    магазин для покупки аккаунтов купля продажа аккаунта

  10. Williszew表示:

    https://interpharmonline.com/# reddit canadian pharmacy

  11. Montebeera表示:

    best canadian pharmacy online canadian drugstore online no prescription reputable canadian pharmacy

  12. Howardenace表示:

    canada cloud pharmacy: Pharmacies in Canada that ship to the US – canadianpharmacymeds com

  13. Howardenace表示:

    canada pharmacy 24h: fda approved canadian online pharmacies – online canadian pharmacy

  14. JamesGag表示:

    reliable canadian online pharmacy: legitimate canadian pharmacies online – canadian pharmacy king reviews

  15. Williszew表示:

    http://interpharmonline.com/# canadian pharmacy

  16. Montebeera表示:

    Mexican Pharm Inter Mexican Pharm International MexicanPharmInter

  17. JamesGag表示:

    MexicanPharmInter: mexican pharmacy online store – mexican pharmacy online

  18. 누누티비表示:

    누누티비

  19. Williszew表示:

    https://indiamedfast.shop/# order medicines online india

  20. Arthurhow表示:

    https://interpharmonline.shop/# maple leaf pharmacy in canada
    pharmacy wholesalers canada

  21. JamesGag表示:

    India Med Fast: buying prescription drugs from india – India Med Fast

  22. Williszew表示:

    https://indiamedfast.shop/# online pharmacy india

  23. 누누티비表示:

    I liked as much as you will receive performed proper here. The cartoon is tasteful, your authored material stylish. nevertheless, you command get bought an shakiness over that you want be handing over the following. sick definitely come further until now once more as precisely the same nearly a lot frequently inside case you defend this hike.

  24. Arthurhow表示:

    https://indiamedfast.com/# online medicine shopping in india
    vipps canadian pharmacy

  25. Kamiyama, 43, moved from Japan in 1987 with her husband who was killed in a automobile accident shortly earlier than their daughter was born.

  26. Arthurhow表示:

    http://mexicanpharminter.com/# mexican drug stores online
    canadian pharmacy prices

  27. banshee atv表示:

    Hmm is anyone else experiencing problems with the pictures on this blog loading? I’m trying to find out if its a problem on my end or if it’s the blog. Any responses would be greatly appreciated.

  28. Williszew表示:

    http://mexicanpharminter.com/# mexican pharmacy online

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

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