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

11,003 Responses

  1. Donaldcoums表示:

    pharmacie en ligne avec ordonnance: pharmacie en ligne fiable – п»їpharmacie en ligne france

  2. I?m impressed, I have to say. Actually hardly ever do I encounter a weblog that?s each educative and entertaining, and let me inform you, you have got hit the nail on the head. Your concept is outstanding; the problem is something that not enough persons are speaking intelligently about. I am very glad that I stumbled across this in my seek for something relating to this.

  3. Roberthep表示:

    pharmacie en ligne france livraison belgique pharmacie en ligne pharmacie en ligne pas cher

  4. Thanks for the suggestions shared on the blog. Yet another thing I would like to talk about is that losing weight is not all about going on a celebrity diet and trying to reduce as much weight as you can in a set period of time. The most effective way to lose weight is by taking it little by little and using some basic tips which can assist you to make the most through your attempt to lose fat. You may realize and already be following most of these tips, yet reinforcing expertise never affects.

  5. AntoniaSut表示:

    pharmacie en ligne france fiable: pharmacie en ligne france pas cher Рvente de m̩dicament en ligne

  6. Cassino para jogadores de sucesso Fortune Tiger

  7. WilliamTeath表示:

    gГјnstigste online apotheke: online apotheke deutschland – online apotheke preisvergleich

  8. I?ll immediately grab your rss feed as I can not find your e-mail subscription link or newsletter service. Do you have any? Please let me know so that I could subscribe. Thanks.

  9. Donaldcoums表示:

    farmaci senza ricetta elenco: top farmacia online – farmacia online senza ricetta

  10. Eu recomendo este cassino a todos Fortune Tiger

  11. Um cassino em que voce pode confiar Fortune Tiger

  12. AntoniaSut表示:

    pharmacie en ligne pas cher: pharmacie en ligne livraison europe – pharmacie en ligne

  13. RalphSnize表示:

    online apotheke versandkostenfrei: gГјnstigste online apotheke – gГјnstigste online apotheke

  14. AntoniaSut表示:

    Farmacie online sicure: farmacie online sicure – Farmacie on line spedizione gratuita

  15. Roberthep表示:

    farmacia online madrid farmacias online seguras farmacia en casa online descuento

  16. Roberthep表示:

    п»їpharmacie en ligne france pharmacie en ligne Achat mГ©dicament en ligne fiable

  17. Styazhka_dhMa表示:

    полусухая стяжка пола в квартире цена https://mekhanizirovannaya-shtukaturka15.ru .

  18. Roberthep表示:

    farmaci senza ricetta elenco farmaci senza ricetta elenco farmaci senza ricetta elenco

  19. VernonRib表示:

    https://eufarmaciaonline.com/# farmacia online barata y fiable

  20. AntoniaSut表示:

    Pharmacie Internationale en ligne: pharmacie en ligne france livraison belgique – pharmacie en ligne

  21. WilliamTeath表示:

    pharmacie en ligne france pas cher: pharmacie en ligne fiable – pharmacie en ligne france livraison belgique

  22. WilliamTeath表示:

    online apotheke preisvergleich: gГјnstige online apotheke – gГјnstigste online apotheke

  23. AntoniaSut表示:

    acheter m̩dicament en ligne sans ordonnance: pharmacie en ligne france livraison internationale Рpharmacie en ligne pas cher

  24. AntoniaSut表示:

    farmacia online più conveniente: top farmacia online – Farmacia online migliore

  25. Roberthep表示:

    vente de mГ©dicament en ligne Pharmacie sans ordonnance pharmacie en ligne fiable

  26. Roberthep表示:

    beste online-apotheke ohne rezept europa apotheke online apotheke gГјnstig

  27. Roberthep表示:

    farmacias online seguras farmacia online envГ­o gratis farmacia online 24 horas

發佈留言

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