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

  1. Billyved表示:

    http://doxycyclinea.online/# doxycycline without prescription

  2. MarvinRoave表示:

    average cost of generic prednisone prednisone uk over the counter prednisone tabs 20 mg

  3. Richardorele表示:

    neurontin 100 mg cap: buy neurontin 100 mg canada – neurontin prescription medication

  4. Billyved表示:

    https://gabapentinneurontin.pro/# neurontin 4000 mg

  5. Charleselila表示:

    amoxicillin canada price: can you buy amoxicillin over the counter – antibiotic amoxicillin

  6. Charleselila表示:

    doxycycline 50 mg: 100mg doxycycline – doxycycline pills

  7. Apresentando uma casa de apostas confiavel 1win

  8. Henryfet表示:

    where can i buy prednisone without prescription: prednisone over the counter cost – how can i get prednisone

  9. GichardPheve表示:

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

  10. DichaelDax表示:

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

  11. Henryfet表示:

    neurontin 600 mg pill: generic neurontin – neurontin 214

  12. MarvinRoave表示:

    neurontin 600 mg neurontin price india neurontin cost australia

  13. Henryfet表示:

    doxycycline 100 mg: doxycycline 100mg capsules – odering doxycycline

  14. Отличный сайт! Тут Вы можете приобрестиВоздушные шары

  15. Billyved表示:

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

  16. Richardorele表示:

    amoxicillin 500mg buy online canada: amoxicillin 500 mg tablet price – amoxicillin 500mg cost

  17. Billyved表示:

    http://gabapentinneurontin.pro/# neurontin 100mg discount

  18. MarvinRoave表示:

    zithromax canadian pharmacy can you buy zithromax online can you buy zithromax over the counter in canada

  19. Hbktuw表示:

    cenforce proud – tadacip pills sparkler brand viagra fear

  20. Billyved表示:

    http://zithromaxa.store/# zithromax online

  21. Henryfet表示:

    doxycycline without a prescription: doxycycline generic – buy doxycycline 100mg

  22. Apresentando a melhor casa de apostas 1win

  23. Recomendo uma excelente empresa de apostas 1win

  24. Henryfet表示:

    doxycycline order online: doxycycline 100mg – doxylin

  25. MarvinRoave表示:

    zithromax z-pak zithromax drug can you buy zithromax over the counter in australia

  26. Henryfet表示:

    can i buy zithromax over the counter in canada: zithromax over the counter canada – generic zithromax azithromycin

  27. Richardorele表示:

    cost of generic zithromax: zithromax 500 mg for sale – zithromax for sale cheap

  28. Billyved表示:

    http://zithromaxa.store/# buy generic zithromax no prescription

  29. Escolha de uma casa de apostas confiavel 1win

  30. DichaelDax表示:

    В нашем мире, где диплом – это начало успешной карьеры в любом направлении, многие ищут максимально быстрый и простой путь получения качественного образования. Факт наличия официального документа сложно переоценить. Ведь именно диплом открывает двери перед каждым человеком, который собирается вступить в сообщество профессиональных специалистов или учиться в университете.
    Наша компания предлагает максимально быстро получить этот необходимый документ. Вы можете заказать диплом нового или старого образца, что становится отличным решением для человека, который не смог завершить обучение, утратил документ или хочет исправить свои оценки. диплом изготавливается аккуратно, с максимальным вниманием ко всем деталям, чтобы на выходе получился документ, 100% соответствующий оригиналу.
    Превосходство данного подхода заключается не только в том, что вы сможете оперативно получить диплом. Весь процесс организован комфортно, с профессиональной поддержкой. От выбора необходимого образца до точного заполнения личной информации и доставки в любой регион России — все под абсолютным контролем квалифицированных мастеров.
    Таким образом, для тех, кто хочет найти быстрый способ получить необходимый документ, наша компания готова предложить отличное решение. Купить диплом – значит избежать долгого обучения и сразу перейти к своим целям, будь то поступление в университет или старт карьеры.
    http://diploman-russiyan.com

發佈留言

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