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

20,022 Responses

  1. order cialis buy viagra online no prescription buy viagra online australia legally how much levitra should i take

  2. Arkadan ilişki: malzemeler. 1. kayganlaştırıcı yada vazelin. 2.
    penisî olan patner. vatif. u temizlik seti.
    önce vakum ile iyice temizle, sonra sevişmeye başla sonra vazelin sürsün küçük bir vezir
    parmagı ile ortamı hazırlasın, sonra penis ile
    yavaş yavaş (kesinlikle yavaş olsun) içeri girsin.

  3. merck molnupiravir molnupiravir supplier molnupiravir emergency use tab molnupiravir price

  4. Lesliepisn表示:

    online bingo for money
    no deposit bonus
    online casino bonus no deposit

  5. nolvadex pct amazon where to buy nolvadex 2018 uk where can you buy nolvadex how often to take nolvadex on cycle

  6. Bobbiepisn表示:

    free no deposit
    best deposit casino bonus
    casino online real money usa

  7. Türk Eczacıları Birliği (TEB) Genel Sekreteri Özgür Özel,
    eczanelerde kullanılan ve reçete onay sistemi denilen ‘Medula Provizyon Sistemi’nin çöktüğünü açıklarken, Sosyal.

  8. Pearlpisn表示:

    win real money online casino for free
    real online casino
    casinos online real money

  9. amoxil pediatrico purchase amoxil 1000mg online will amoxil treat strep throat and pneumonia standard dose amoxil for cats

  10. Sıcak bir kızla mükemmel aşırı Big Black Cock video.
    Deepthroat gibi kategorilerde binlerce hardcore porno videosunu kontrol
    edin, Ahegao veya Femdom. Keyfini çıkarın seksi
    sarışın piliç sadece umurunda hakkında lanet bu bbc.

  11. kamagra australia shop is there generic cialis in usa kamagra oral jelly side effects how does viagra work wiki

  12. Frannipisn表示:

    best online casino for us players
    no deposit casino bonus
    casino welcome bonuses

  13. Laureenpisn表示:

    bonus no deposit
    safe online casino
    online spins

  14. Dixiepisn表示:

    no deposit casino real money
    best online casinos for us players
    casino bonuses online

  15. Medicare İndirilebilir, Borç ve Prim Oranları Için-Sağlık-Profesyoneller 2022.
    İçindekiler. Medicare Bölüm A Hastane Sigortası ; Medicare Kısım B Tamamlayıcı Sağlık Sigortası ; Medicare için Faturalandırma
    Hakkında Daha Fazla Bilgi ; 2022 Jun 13th, Benefits Seminar
    Investing in People (Mart 2022).

  16. Verenapisn表示:

    online mobile casinos
    online us casinos
    best casino bonuses

  17. Hestiapisn表示:

    mba dissertation help
    phd dissertation writing service
    writing your dissertation in

  18. kamagra perth what does cialis do how to take cialis 20 mg how to use viagra pills

  19. Shaylapisn表示:

    the best online casino
    free welcome bonus no deposit required
    online casinos free bonuses

  20. Audrepisn表示:

    dissertation only phd
    writing dissertation
    best dissertation help services

  21. himalayan viagra cialis vs.levitra what is cialis tadalafil used for when does cialis come off patent in australia

  22. Herminapisn表示:

    dissertation meaning
    dissertation editing
    edd dissertation topics

  23. Abagaelpisn表示:

    what is the best online casino for real money
    online casinos for real money
    free online games to win real money no deposit

發佈留言

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