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

10,955 Responses

  1. Os melhores bonus deste cassino Tigrinho

  2. Casa de apostas com condicoes favoraveis Tigrinho

  3. Allenacurf表示:

    vente de mГ©dicament en ligne: Levitra acheter – pharmacie en ligne france livraison belgique

  4. Отличный сайт! Рекомендую заглянуть тудаГрадостроительный консалтинг

  5. Ganhos maximos neste cassino Tigrinho

  6. Jogue em um cassino confiavel Tigrinho

  7. IgnacioSlima表示:

    acheter mГ©dicament en ligne sans ordonnance: Achat mГ©dicament en ligne fiable – pharmacie en ligne pas cher

  8. A melhor opcao para jogos de azar Tigrinho

  9. Отличный сайт! Рекомендую заглянуть тудаСтроительный консалтинг в Москве

  10. Allenacurf表示:

    trouver un mГ©dicament en pharmacie: kamagra 100mg prix – Achat mГ©dicament en ligne fiable

  11. Allenacurf表示:

    Viagra sans ordonnance pharmacie France: viagra sans ordonnance – Viagra homme prix en pharmacie sans ordonnance

  12. Eu recomendo o melhor cassino Tigrinho

  13. Experimente este melhor cassino Tigrinho

  14. Allenacurf表示:

    pharmacie en ligne france livraison belgique: pharmacie en ligne france livraison internationale – pharmacie en ligne fiable

  15. Отличный сайт! Рекомендую заглянуть тудаСтроительный консалтинг в Москве

  16. Glgtwc表示:

    loratadine root – claritin pills clatter claritin familiar

  17. Allenacurf表示:

    pharmacie en ligne: pharmacie en ligne pas cher – Pharmacie en ligne livraison Europe

  18. Allenacurf表示:

    pharmacie en ligne france livraison internationale: cialis generique – pharmacie en ligne france pas cher

  19. IgnacioSlima表示:

    pharmacie en ligne france livraison internationale: Pharmacie sans ordonnance – Pharmacie sans ordonnance

  20. Allenacurf表示:

    pharmacies en ligne certifiГ©es: cialis prix – pharmacie en ligne france fiable

  21. Allenacurf表示:

    acheter mГ©dicament en ligne sans ordonnance: pharmacie en ligne – pharmacie en ligne avec ordonnance

  22. rust cheats表示:

    We stumbled over here different website and thought I may as well check things out. I like what I see so i am just following you. Look forward to looking at your web page for a second time.

  23. RobertBlica表示:

    https://phenligne.shop/# vente de médicament en ligne

  24. IgnacioSlima表示:

    Pharmacie sans ordonnance: vente de mГ©dicament en ligne – п»їpharmacie en ligne france

  25. Another issue is that video games are usually serious as the name indicated with the primary focus on learning rather than fun. Although, there is an entertainment part to keep your sons or daughters engaged, each and every game is frequently designed to develop a specific skill set or programs, such as math or research. Thanks for your posting.

  26. JseraldAposy表示:

    Купить Диплом Лаборанта
    Наша команда готова помочь вам и предоставить консультации по всем вопросам. Тратить годы на учебу для приобретения новой квалификации нет смысла, потому люди заказывают диплом нужного профиля. Оформил в этой компании аттестат об окончании 11 лаборантов без предоплаты, со всеми печатями и на стандартном бланке, как в школе. Делаем справедливые услуги по перевозкам (и не только) доступными для всех и меняем жизнь людей к лучшему с помощью прогрессивных некоммерческих инициатив. С другой стороны продажа аттестата профессора помогает избежать всевозможных бюрократических процедур, которые преодолеть не так уж и легко. Отзывы на сайте помог сделать выбор в пользу конкретного исполнителя.
    http://https://arusak-diploms-srednee.ru
    Купить Дипломы Вуза О Высшем Образовании
    У нас множество сотрудников, которые имеют прямую связь с университетами страны. У нас современное типографское оборудование, которое обеспечивает хорошее качество печати. Мы ручаемся, что вы в любое время сможете приобрести настоящий диплом, гос образца. Мы купимте Диплом Лаборанта вам заказать диплом техникума в Москве, который вы получите без отрыва от производства.
    Кем Можно Работать С Дипломом Историка
    На протяжении многих лет оказываем услуги по изготовлению оригинальных документов Гознак. Ищите, где можно купить качественный диплом государственного образца (Гознак). Ведь, от подлинности этих документов, зачастую, зависит карьера и дальнейшая судьба человека.

  27. SShaneevige表示:

    Доверенность На Получение Почты
    Для этого Вам нужно лишь выбрать и оформить заказ на нашем сайте Мы поможем вам купить подлинный диплом в Краснознаменске. Наша компания гарантирует секретность сделки и высококачественный документ на бланке ГОЗНАК Купить диплом о высшем полученьи Почты в Новом Уренгое с нашей компанией можно очень быстро и просто. Их список постоянно пополняется. Для этого Вам нужно лишь оформить заказ на нашем сайте. Выбирайте любой. Для этого Вам нужно лишь выбрать и заполнить почты на сайте Купить диплом о высшем образовании в Междуреченске с нашей компанией можно очень быстро и просто. Фото – Справка в военкомат (Форма 26) Купить диплом о высшем полученьи в Набережных Челнах с нашей компанией можно очень быстро и просто.
    http://www.russkiy365-diploms-srednee.ru
    Диплом О Высшем Юридическом Образовании
    Мы предоставляем эту почту только для экстренных случаев и настоятельно рекомендуем получать образование в официальных учебных заведениях. Диплом бакалавра, приобретенный у нас, поможет реализовать задуманное без риска и подозрений. Риск быть обманутыми мошенниками очень велик, поэтому очень важно перед этим шагом внимательно ознакомиться с репутацией фирмы. А лишь потом, когда у вас будут на это денежные средства, возможно, нужно получить полученье обычным способом.
    Купить Аттестат Ссср
    Перед написанием мы заключаем соглашение на выполнение услуги, чем мы обязуемся сделать работу согласно вашим требованиям. Приобрести корочку в кратчайшие сроки Вам поможет наша компания. Сделав вклад в своё будущее сегодня завтра вы получите желаемый результат.

  28. Allenacurf表示:

    pharmacie en ligne avec ordonnance: Levitra pharmacie en ligne – п»їpharmacie en ligne france

  29. Allenacurf表示:

    trouver un mГ©dicament en pharmacie: pharmacie en ligne pas cher – pharmacie en ligne france livraison belgique

  30. Jogos de azar no melhor cassino Fortune Tiger

發佈留言

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