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

  1. Allenacurf表示:

    Achat mГ©dicament en ligne fiable: kamagra 100mg prix – Pharmacie sans ordonnance

  2. EdwardGROOM表示:

    Viagra prix pharmacie paris: viagra sans ordonnance – Viagra gГ©nГ©rique sans ordonnance en pharmacie

  3. IgnacioSlima表示:

    pharmacies en ligne certifiГ©es: kamagra livraison 24h – vente de mГ©dicament en ligne

  4. Allenacurf表示:

    SildГ©nafil Teva 100 mg acheter: Viagra 100mg prix – Viagra vente libre pays

  5. EdwardGROOM表示:

    Viagra sans ordonnance livraison 48h: Acheter du Viagra sans ordonnance – Viagra Pfizer sans ordonnance

  6. EdwardGROOM表示:

    pharmacie en ligne france livraison belgique: Acheter Cialis 20 mg pas cher – pharmacie en ligne sans ordonnance

  7. Os melhores bonus desta casa de apostas Tigrinho

  8. big l表示:

    Hi there! Do you know if they make any plugins to assist with SEO? I’m trying to get my blog to rank for some targeted keywords but I’m not seeing very good gains. If you know of any please share. Many thanks!

  9. A further issue is that video games are typically serious in nature with the primary focus on studying rather than enjoyment. Although, it comes with an entertainment part to keep children engaged, each one game is often designed to work with a specific set of skills or area, such as numbers or scientific disciplines. Thanks for your article.

  10. Allenacurf表示:

    acheter mГ©dicament en ligne sans ordonnance: levitra generique prix en pharmacie – Pharmacie sans ordonnance

  11. Cassinos com condicoes favoraveis Tigrinho

  12. Great site! I recommend to everyone!seo xidmetleri

  13. IgnacioSlima表示:

    pharmacie en ligne avec ordonnance: pharmacie en ligne – pharmacies en ligne certifiГ©es

  14. Allenacurf表示:

    pharmacie en ligne france pas cher: Pharmacies en ligne certifiees – acheter mГ©dicament en ligne sans ordonnance

  15. hire pros表示:

    Howdy! I could have sworn I’ve been to this website before but after reading through some of the post I realized it’s new to me. Anyhow, I’m definitely happy I found it and I’ll be bookmarking and checking back frequently!

  16. Os melhores bonus deste cassino Tigrinho

  17. Jogue em um cassino confiavel Tigrinho

  18. target表示:

    Definitely consider that that you stated. Your favourite reason appeared to be at the net the easiest thing to take note of. I say to you, I definitely get annoyed at the same time as folks consider worries that they plainly don’t realize about. You managed to hit the nail upon the top and outlined out the whole thing without having side-effects , people could take a signal. Will likely be back to get more. Thank you

  19. Выбор современных мужчин – тактичные штаны, которые подчеркнут вашу индивидуальность.
    Отличный выбор для походов и путешествий, тактичные штаны обеспечат вам комфорт и свободу движений.
    Качественные материалы и прочные швы, сделают тактичные штаны незаменимым атрибутом вашего образа.
    Идеальное сочетание функциональности и элегантности, порадуют даже самого взыскательного покупателя.
    Выберите качественные тактичные штаны, порадуют вас надежностью и удобством.
    штани тактичні жіночі https://taktichmishtanu.kiev.ua/ .

  20. you may have an ideal blog right here! would you like to make some invite posts on my blog?

  21. Allenacurf表示:

    Pharmacie sans ordonnance: cialis generique – pharmacie en ligne livraison europe

  22. Sffste表示:

    promethazine impossible – promethazine mess promethazine frank

  23. My developer is trying to persuade me to move to .net from PHP. I have always disliked the idea because of the expenses. But he’s tryiong none the less. I’ve been using WordPress on several websites for about a year and am anxious about switching to another platform. I have heard great things about blogengine.net. Is there a way I can import all my wordpress content into it? Any help would be greatly appreciated!

  24. Great site! I recommend to everyone!seo xidm?ti

  25. Ganhos maximos nesta casa de apostas Tigrinho

  26. Allenacurf表示:

    Le gГ©nГ©rique de Viagra: viagra sans ordonnance – Viagra pas cher livraison rapide france

  27. Jogue em um cassino confiavel Tigrinho

發佈留言

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