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

3,353 Responses

  1. Davidtes表示:

    prinivil 5 mg tablets lisinopril price cost for 20 mg lisinopril

  2. Ismaelfer表示:

    В наше время, когда диплом – это начало удачной карьеры в любом направлении, многие ищут максимально быстрый путь получения образования. Факт наличия официального документа сложно переоценить. Ведь диплом открывает дверь перед людьми, стремящимися вступить в сообщество квалифицированных специалистов или продолжить обучение в ВУЗе.
    В данном контексте мы предлагаем оперативно получить любой необходимый документ. Вы имеете возможность купить диплом старого или нового образца, и это будет отличным решением для человека, который не смог закончить обучение или потерял документ. дипломы производятся аккуратно, с максимальным вниманием ко всем нюансам. На выходе вы получите документ, максимально соответствующий оригиналу.
    Преимущества такого подхода состоят не только в том, что можно быстро получить диплом. Весь процесс организовывается комфортно, с профессиональной поддержкой. От выбора необходимого образца диплома до консультаций по заполнению персональных данных и доставки в любое место России — все под полным контролем опытных мастеров.
    Всем, кто ищет быстрый способ получить требуемый документ, наша услуга предлагает выгодное решение. Заказать диплом – значит избежать длительного процесса обучения и сразу перейти к достижению своих целей: к поступлению в университет или к началу успешной карьеры.

    https://diploman-russiyan.com

  3. Davidtes表示:

    tamoxifen hormone therapy is nolvadex legal is nolvadex legal

  4. WilliamRhype表示:

    https://finasteride.store/# buy cheap propecia without insurance

  5. WilliamRhype表示:

    https://finasteride.store/# buy generic propecia without prescription

  6. RandallTaulp表示:

    lisinopril 2018: lisinopril 20mg tablets cost – zestril 20 mg cost

  7. WilliamRhype表示:

    http://ciprofloxacin.tech/# ciprofloxacin mail online

  8. 1win880piodo表示:

    Топовая Букмекерская контора – 1win

  9. Лучшая Букмекерская контора, рекомендую 1win

  10. RandallTaulp表示:

    where to get nolvadex: tamoxifen cancer – tamoxifen cancer

  11. EarnestAvada表示:

    В нашем мире, где диплом является началом отличной карьеры в любой области, многие ищут максимально простой путь получения качественного образования. Факт наличия официального документа трудно переоценить. Ведь именно он открывает двери перед людьми, желающими вступить в профессиональное сообщество или продолжить обучение в университете.
    В данном контексте наша компания предлагает максимально быстро получить любой необходимый документ. Вы можете купить диплом, что становится удачным решением для всех, кто не смог завершить образование, утратил документ или хочет исправить плохие оценки. Все дипломы изготавливаются аккуратно, с максимальным вниманием ко всем элементам. В результате вы получите 100% оригинальный документ.
    Плюсы этого подхода состоят не только в том, что можно оперативно получить диплом. Весь процесс организовывается удобно, с профессиональной поддержкой. Начав от выбора подходящего образца документа до правильного заполнения личных данных и доставки в любой регион России — все под абсолютным контролем качественных специалистов.
    В итоге, для всех, кто ищет быстрый и простой способ получить требуемый документ, наша компания предлагает отличное решение. Приобрести диплом – это значит избежать долгого процесса обучения и не теряя времени перейти к достижению своих целей: к поступлению в ВУЗ или к началу успешной карьеры.

    https://diploman-rossiya.com

  12. Davidtes表示:

    Abortion pills online buy cytotec in usa buy cytotec

  13. 1win881piodo表示:

    Надёжная Букмекерская контора – 1win

  14. Топовая Букмекерская контора, рекомендую 1win

  15. RandallTaulp表示:

    order cheap propecia without prescription: order propecia pills – buying propecia without prescription

  16. Davidtes表示:

    order generic propecia price cost propecia get generic propecia online

  17. WilliamRhype表示:

    https://cytotec.club/# buy cytotec pills

  18. WilliamRhype表示:

    http://finasteride.store/# cost propecia online

  19. WilliamRhype表示:

    http://cytotec.club/# buy cytotec

  20. RandallTaulp表示:

    buy misoprostol over the counter: buy cytotec pills online cheap – buy cytotec

  21. OLaneevige表示:

    В нашем обществе, где диплом является началом успешной карьеры в любом направлении, многие ищут максимально быстрый путь получения качественного образования. Важность наличия официального документа трудно переоценить. Ведь диплом открывает дверь перед каждым человеком, который хочет вступить в сообщество профессионалов или продолжить обучение в ВУЗе.
    Наша компания предлагает быстро получить этот важный документ. Вы имеете возможность заказать диплом, что будет отличным решением для человека, который не смог закончить обучение или утратил документ. Все дипломы производятся с особой аккуратностью, вниманием к мельчайшим нюансам, чтобы в результате получился документ, 100% соответствующий оригиналу.
    Превосходство такого решения состоит не только в том, что можно максимально быстро получить свой диплом. Весь процесс организован просто и легко, с профессиональной поддержкой. От выбора необходимого образца диплома до консультации по заполнению персональных данных и доставки в любой регион страны — все будет находиться под абсолютным контролем опытных мастеров.
    Всем, кто хочет найти быстрый способ получить необходимый документ, наша компания предлагает выгодное решение. Купить диплом – это значит избежать длительного процесса обучения и не теряя времени переходить к личным целям, будь то поступление в университет или старт трудовой карьеры.

    https://dlplomanrussian.com

  22. Davidtes表示:

    can i buy lisinopril over the counter in canada zestril cost price buy zestoretic

  23. Ronaldpsymn表示:

    http://cytotec.club/# п»їcytotec pills online

  24. RandallTaulp表示:

    ciprofloxacin order online: ciprofloxacin mail online – cipro generic

  25. 1win882piodo表示:

    Надёжная Букмекерская контора, всем советую 1win

  26. Топовая Букмекерская контора в мире 1win

  27. Davidtes表示:

    cytotec online order cytotec online buy cytotec in usa

  28. RandallTaulp表示:

    buy cytotec online: cytotec online – cytotec online

  29. Ronaldpsymn表示:

    http://cytotec.club/# cytotec buy online usa

  30. WilliamRhype表示:

    http://finasteride.store/# get generic propecia tablets

發佈回覆給「Davidtes」的留言 取消回覆

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