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,034 Responses

  1. Jenneepisn表示:

    custom dissertation writing
    art dissertation help
    mba dissertation help

  2. Mabellepisn表示:

    research writing help
    dissertation write up
    dissertation methodology

  3. ThomasBig表示:

    – Kiedyś, pamiętam, interesowaliśmy się, ilu Polaków zagra na tych największych turniejach na świecie. Cieszyliśmy się, jak ich tam było kilku. Dzisiaj tak na prawdę nie ma festiwalu pokerowego bez polskich sukcesów – mówi Paweł Majewski, dziennikarz pokerowy. Powyższe zasady gry w pokera w kasynie na pieniądze to absolutna podstawa dla wszystkich użytkowników, którzy zarejestrują swoje konto w Energy Casino lub Unibet aby spróbować swojego szczęścia przy pokerowym stoliku lub automacie udostępniającym tę karciankę. Nawiasem mówiąc to w wyżej wymienionych kasynach znajdziemy automaty online na prawdziwe pieniądze i maszyny do gier. Oczywiście niezbędna jest także znajomość układów występujących w pokerze. Opisujemy je poniżej. https://footballbettingtips.info/forum/profile/melodeeberlin1/ The Stars Group posiada najwięcej na świecie licencji na oferowanie gier hazardowych online. Oferty bonusów za wpłatę pieniędzy na PokerStars ulegają zmianom, ale od niedawna możesz wybrać, który bonus za rejestrację chcesz. Podobnie jak w przypadku większości bonusów, być może będziesz musiał zagrać w Pokerstars na prawdziwe pieniądze, jeśli jest to bonus od depozytu – aby uzyskać pełny bonus. Jeśli grasz regularnie to szybko uda Ci się w pełnie odblokować bonus. Pamiętaj żeby przed zapisaniem się na jakikolwiek bonus zapoznać się z jego warunkami. PokerStars to bez wątpienia najpopularniejsza pokerowa platforma internetowa na świecie. Czy Pokerstars jest w Polsce legalne i co na ten temat sądzi aktualnie obowiązujące prawo?

  4. Tandipisn表示:

    us online casino
    best no deposit bonus online casino
    free online casino no deposit

  5. Darsiepisn表示:

    proquest dissertation
    medical dissertation writing services
    master dissertation

  6. Sallipisn表示:

    online dissertation help
    uga dissertation
    thesis or dissertation

  7. Hi there outstanding website! Does running a blog similar to this take a lot of work?
    I have absolutely no expertise in coding but I was hoping to start my own blog in the near future.
    Anyway, if you have any ideas or techniques for new blog owners please share.
    I know this is off subject but I simply wanted to ask.
    Cheers!

  8. Suzannpisn表示:

    writing dissertation abstract
    uk dissertation help
    buy the help

  9. Glynnispisn表示:

    chicago illinois dissertation help
    phd thesis vs dissertation
    dissertation help methodology

  10. Verieepisn表示:

    writing dissertation proposal
    writing services
    phd dissertation writing help

  11. Verieepisn表示:

    dissertation consulting
    dissertation writing fellowships
    doctoral dissertation writing help

  12. prednisone pill identifier 85g prednisone prednisone dosage for back pain what is prednisone for dogs used for

  13. Dortheapisn表示:

    edd dissertation topics
    dissertation structure
    dissertation proposal writing help

  14. Avivapisn表示:

    phd thesis
    uk dissertation writing
    how to write a dissertation

發佈留言

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