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

27,873 Responses

  1. BrandonJag表示:

    can i order clomid pill: ClmHealthPharm – clomid rx

  2. BrandonJag表示:

    buy doxycycline in usa: doxycycline south africa – doxycycline drug

  3. Scientific and excessive tech research and development operations are in the city, together with Lowell Observatory, Northern Arizona University, the United States Naval Observatory Flagstaff Station (NOFS) and the United States Geological Survey’s (USGS) Flagstaff campus.

  4. BrandonJag表示:

    zithromax 500 mg for sale: ZithroPharm – buy zithromax online with mastercard

  5. Unquestionably believe that which you stated. Your favorite justification seemed to be on the internet the easiest thing to be aware of. I say to you, I certainly get irked while people consider worries that they plainly do not know about. You managed to hit the nail upon the top as well as defined out the whole thing without having side effect , people can take a signal. Will likely be back to get more. Thanks

  6. Briantrozy表示:

    where can i buy zithromax uk: ZithroPharm – zithromax prescription

  7. Briantrozy表示:

    order amoxicillin online no prescription: antibiotic amoxicillin – buy amoxicillin online cheap

  8. VirgilBlawl表示:

    zithromax 250 mg ZithroPharm zithromax cost canada

  9. BrandonJag表示:

    rx doxycycline: doxycycline hydrochloride – doxycycline 500mg price in india

  10. Briantrozy表示:

    can we buy amoxcillin 500mg on ebay without prescription: AmoHealthPharm – amoxicillin 500mg no prescription

  11. JustinTam表示:

    amoxicillin 1000 mg capsule: order amoxicillin online uk – amoxicillin 500 mg where to buy

  12. VirgilBlawl表示:

    buy amoxicillin online with paypal AmoHealthPharm amoxicillin azithromycin

  13. Roberttic表示:

    http://doxhealthpharm.com/# how much is doxycycline cost

  14. VirgilBlawl表示:

    can you get clomid price ClmHealthPharm where to get generic clomid price

  15. Thanks for your publication. What I want to comment on is that while searching for a good online electronics retail outlet, look for a web site with comprehensive information on important factors such as the level of privacy statement, safety details, payment procedures, and other terms in addition to policies. Continually take time to look into the help plus FAQ sections to get a better idea of the way the shop operates, what they can do for you, and the way you can maximize the features.

  16. Briantrozy表示:

    zithromax online australia: zithromax tablets for sale – how to get zithromax

  17. JustinTam表示:

    amoxicillin 500mg prescription: amoxicillin online canada – where can you get amoxicillin

  18. Okay, maybe island-hopping within the Caribbean is a tad formidable (and expensive), but you possibly can explore local offerings on the very least.

  19. This is very interesting, You’re a very skilled blogger. I have joined your feed and stay up for seeking extra of your excellent post. Additionally, I have shared your website in my social networks!

  20. JustinTam表示:

    antibiotic amoxicillin: where can i buy amoxicillin over the counter – buying amoxicillin in mexico

  21. BrandonJag表示:

    where to buy generic clomid without prescription: ClmHealthPharm – how to buy generic clomid no prescription

  22. JustinTam表示:

    amoxicillin cost australia: amoxicillin buy no prescription – order amoxicillin online no prescription

  23. VirgilBlawl表示:

    amoxicillin pharmacy price amoxicillin 500 mg purchase without prescription where can i buy amoxicillin over the counter uk

  24. JustinTam表示:

    amoxicillin where to get: Amo Health Pharm – amoxicillin 500 coupon

  25. To keep away from this requirement, a foreign investor will often make investments by a blocker corporation (often located in the Cayman Islands or another offshore jurisdiction).

  26. BrandonJag表示:

    can i order cheap clomid tablets: where to get generic clomid without rx – order clomid prices

  27. Roberttic表示:

    https://amohealthpharm.shop/# purchase amoxicillin 500 mg

  28. Thank you for another fantastic article. Where else could anyone get that type of information in such a perfect way of writing? I’ve a presentation next week, and I’m on the look for such information.

發佈留言

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