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

  1. Ismaelfer表示:

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

  2. Henryfet表示:

    zithromax 500 mg lowest price pharmacy online: generic zithromax over the counter – zithromax buy online no prescription

  3. A escolha dos profissionais no mundo das apostas 1win

  4. Uma casa de apostas confiavel e com excelente reputacao 1win

  5. Henryfet表示:

    prednisolone prednisone: purchase prednisone from india – prednisone without prescription

  6. MarvinRoave表示:

    prednisone in india prednisone brand name us iv prednisone

  7. Billyved表示:

    https://gabapentinneurontin.pro/# where to buy neurontin

  8. Billyved表示:

    http://doxycyclinea.online/# 100mg doxycycline

  9. Apostas bem-sucedidas com a melhor casa de apostas 1win

  10. Recomendo uma casa de apostas exclusiva 1win

  11. Billyved表示:

    http://amoxila.pro/# amoxicillin 30 capsules price

  12. MarvinRoave表示:

    purchase amoxicillin 500 mg amoxicillin 825 mg amoxicillin generic

  13. Richardorele表示:

    neurontin price australia: neurontin capsules 300mg – neurontin buy online

  14. Henryfet表示:

    buy prednisone nz: where to buy prednisone in australia – buy prednisone 40 mg

  15. MarvinRoave表示:

    buy amoxicillin 250mg buy amoxicillin 500mg amoxicillin 500mg capsules uk

  16. Charleselila表示:

    prednisone in uk: order prednisone on line – order prednisone with mastercard debit

  17. A melhor casa de apostas para apostar 1win

  18. A melhor opcao para apostas esportivas 1win

  19. Henryfet表示:

    amoxicillin azithromycin: amoxicillin generic – buy amoxicillin without prescription

  20. Shaneevige表示:

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

  21. MarvinRoave表示:

    amoxicillin 500 mg cost amoxicillin price canada where can i buy amoxicillin over the counter uk

  22. Henryfet表示:

    zithromax 500 mg lowest price pharmacy online: can you buy zithromax over the counter in mexico – zithromax capsules 250mg

  23. Richardorele表示:

    ordering neurontin online: neurontin 800 mg capsules – cost of brand name neurontin

  24. Casa de apostas confiavel, recomendada 1win

  25. Recomendo uma excelente casa de apostas 1win

  26. Billyved表示:

    https://doxycyclinea.online/# buy doxycycline cheap

  27. Charleselila表示:

    amoxicillin 500 mg without a prescription: buy amoxicillin 500mg online – azithromycin amoxicillin

  28. Charleselila表示:

    neurontin uk: neurontin 30 mg – neurontin 800 mg price

  29. DichaelDax表示:

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

  30. Billyved表示:

    http://zithromaxa.store/# zithromax online pharmacy canada

發佈留言

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