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

10,931 Responses

  1. IgnacioSlima表示:

    Pharmacie sans ordonnance: levitra generique – Pharmacie Internationale en ligne

  2. Allenacurf表示:

    Prix du Viagra 100mg en France: viagra en ligne – Viagra pas cher livraison rapide france

  3. RobertBlica表示:

    https://phenligne.com/# pharmacie en ligne sans ordonnance

  4. Allenacurf表示:

    pharmacie en ligne livraison europe: pharmacie en ligne sans ordonnance – pharmacie en ligne france fiable

  5. Um cassino com uma excelente reputacao Tigrinho

  6. IgnacioSlima表示:

    Achat mГ©dicament en ligne fiable: kamagra 100mg prix – pharmacie en ligne france fiable

  7. Rqzyox表示:

    florinef hum – fludrocortisone rid prevacid crystal

  8. A melhor opcao de cassinos Tigrinho

  9. Allenacurf表示:

    Viagra vente libre allemagne: viagra en ligne – Viagra vente libre pays

  10. O cassino mais confiavel Tigrinho

  11. EdwardGROOM表示:

    Pharmacie sans ordonnance: levitra generique – pharmacie en ligne france fiable

  12. EdwardGROOM表示:

    pharmacie en ligne france pas cher: pharmacie en ligne sans ordonnance – pharmacie en ligne france pas cher

  13. EdwardGROOM表示:

    trouver un mГ©dicament en pharmacie: kamagra oral jelly – Achat mГ©dicament en ligne fiable

  14. Eu recomendo o melhor cassino Tigrinho

  15. Allenacurf表示:

    Pharmacie sans ordonnance: pharmacie en ligne – acheter mГ©dicament en ligne sans ordonnance

  16. Experimente este cassino de primeira linha Tigrinho

  17. Allenacurf表示:

    pharmacie en ligne sans ordonnance: cialis sans ordonnance – Pharmacie Internationale en ligne

  18. Flouct表示:

    http://jointpain.top/ – pip and dip joint pain

  19. IgnacioSlima表示:

    trouver un mГ©dicament en pharmacie: pharmacie en ligne france livraison belgique – pharmacie en ligne france livraison internationale

  20. Flouct表示:

    http://jointpain.top/ – thumb joint pain support

  21. Allenacurf表示:

    Pharmacie Internationale en ligne: levitra generique sites surs – pharmacie en ligne pas cher

  22. OnlyFans表示:

    I have realized that over the course of building a relationship with real estate entrepreneurs, you’ll be able to come to understand that, in most real estate exchange, a payment is paid. Eventually, FSBO sellers tend not to “save” the payment. Rather, they struggle to win the commission simply by doing a good agent’s job. In accomplishing this, they commit their money in addition to time to perform, as best they are able to, the responsibilities of an real estate agent. Those responsibilities include uncovering the home by means of marketing, representing the home to prospective buyers, constructing a sense of buyer desperation in order to prompt an offer, making arrangement for home inspections, taking on qualification assessments with the loan provider, supervising maintenance, and aiding the closing.

  23. Flouct表示:

    http://jointpain.top/ – nutrition haks joint pain la thuoc gi

  24. Allenacurf表示:

    pharmacie en ligne fiable: pharmacie en ligne france livraison internationale – pharmacies en ligne certifiГ©es

  25. Отличный сайт! Всем рекомендую! Тут Вы можете найтиНайти человека

  26. Experimente este cassino de primeira linha Tigrinho

  27. Flouct表示:

    http://jointpain.top/ – joint pain after complete hysterectomy

  28. Eu recomendo um otimo cassino Tigrinho

  29. IgnacioSlima表示:

    п»їpharmacie en ligne france: kamagra 100mg prix – pharmacie en ligne france livraison internationale

  30. F'表示:

    That is the correct weblog for anybody who desires to seek out out about this topic. You notice so much its virtually laborious to argue with you (not that I really would need?HaHa). You positively put a brand new spin on a topic thats been written about for years. Great stuff, just great!

發佈留言

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