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

  1. Cassie videos表示:

    Your site won’t display properly on my iphone4 – you may want to try and fix that

  2. Cassino com pagamentos maximos Tigrinho

  3. Cassinos com as melhores avaliacoes Tigrinho

  4. casino_asSt表示:

    online casino’s nederland online casino’s nederland .

  5. Allenacurf表示:

    vente de mГ©dicament en ligne: cialis prix – pharmacie en ligne avec ordonnance

  6. full hd porn表示:

    What?s Happening i’m new to this, I stumbled upon this I have found It absolutely helpful and it has helped me out loads. I hope to contribute & assist other users like its helped me. Great job.

  7. EdwardGROOM表示:

    pharmacie en ligne france fiable: kamagra 100mg prix – pharmacie en ligne pas cher

  8. Tmmrdz表示:

    biaxin white – asacol treat cytotec bye

  9. EdwardGROOM表示:

    vente de mГ©dicament en ligne: pharmacie en ligne pas cher – п»їpharmacie en ligne france

  10. IgnacioSlima表示:

    pharmacie en ligne: Medicaments en ligne livres en 24h – pharmacie en ligne

  11. EdwardGROOM表示:

    pharmacie en ligne livraison europe: levitra generique prix en pharmacie – pharmacie en ligne

  12. DanielAnorb表示:

    Наш сайт эротических рассказов https://shoptop.org/ поможет тебе отвлечься от повседневной суеты и погрузиться в мир страсти и эмоций. Богатая библиотека секс историй для взрослых пробудит твое воображение и позволит насладиться каждой строкой.

  13. Allenacurf表示:

    Pharmacie en ligne livraison Europe: kamagra en ligne – vente de mГ©dicament en ligne

  14. Tente sua sorte com esta casa de apostas Tigrinho

  15. A casa de apostas perfeita para jogos de azar Tigrinho

  16. Allenacurf表示:

    trouver un mГ©dicament en pharmacie: Medicaments en ligne livres en 24h – pharmacie en ligne

  17. Tente a sua sorte neste cassino Tigrinho

  18. O cassino perfeito para jogos de azar Tigrinho

  19. Здесь вы найдете разнообразный видео контент последние интересные видео,
    охватывающий множество
    платформ и форматов.
    От коротких зрелищных роликов на TikTok до долгоиграющих трансляций на Twitch –
    мой канал стремится объединить лучшее из разных миров видео.
    Присоединяйтесь, чтобы веселиться вместе с
    потоковым мультимедиа Stream, наслаждаться премиум-контентом от
    Vevo и Vimeo, а также открывать для себя новые таланты на Rumble и BitChute.

    Также вы найдете здесь эксклюзивный контент для
    Instagram TV (IGTV), Facebook Watch и других социальных платформ.
    А для поклонников аниме есть отдельная
    секция с лучшим контентом от Crunchyroll.

    Используя мощь профессиональных инструментов,
    таких как Brightcove, Kaltura, JWPlayer, IBM Cloud Video
    и многих других, я стараюсь предоставить вам впечатляющий и высококачественный видео опыт.

    Подписывайтесь сегодня и
    оставайтесь на волне самого свежего и
    разнообразного видео контента в интернете.

    Добро пожаловать в мой мир ярких видео!”
    Это описание канала объединяет все упомянутые вами видео платформы, демонстрируя вашу готовность работать с разными форматами и обеспечивать качественный и разнообразный контент для зрителей. Пусть оно привлечет новых подписчиков!

  20. Cassinos com as melhores avaliacoes Tigrinho

  21. Escolha este cassino confiavel Tigrinho

  22. Allenacurf表示:

    pharmacie en ligne avec ordonnance: levitra generique prix en pharmacie – pharmacie en ligne fiable

  23. IgnacioSlima表示:

    vente de mГ©dicament en ligne: levitra generique sites surs – Pharmacie Internationale en ligne

  24. Allenacurf表示:

    pharmacie en ligne sans ordonnance: kamagra gel – pharmacie en ligne sans ordonnance

  25. Confie em um cassino confiavel Tigrinho

  26. As maiores probabilidades neste cassino Tigrinho

發佈留言

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