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

  1. cbd massage表示:

    I take pleasure in, lead to I found exactly what I used to be taking a look for. You have ended my four day long hunt! God Bless you man. Have a great day. Bye

  2. Interesting article. It is very unfortunate that over the last years, the travel industry has already been able to to fight terrorism, SARS, tsunamis, flu virus, swine flu, as well as the first ever entire global tough economy. Through all this the industry has really proven to be robust, resilient and also dynamic, getting new methods to deal with adversity. There are always fresh troubles and opportunities to which the market must once again adapt and reply.

  3. I believe this is among the most significant info for me. And i’m happy studying your article. However wanna statement on some normal things, The web site style is perfect, the articles is truly nice : D. Excellent activity, cheers

  4. RobertSax表示:

    https://autolux-azerbaijan.com/# Pin Up Azerbaycan ?Onlayn Kazino

  5. EarnestAvada表示:

    Good day! Would you mind if I share your blog with my twitter group? There’s a lot of people that I think would really appreciate your content. Please let me know. Many thanks

    dip-vuz.ru/kupit-diplom-v-tyumeni/index.html 
    connect.nteep.org/blogs/753/Where-can-I-buy-a-diploma-or-certificate-at-an?lang=tr_tr 
    77lub.ru/products/small-engine-oils/ 
    http://www.360nhadep.com/tag/dong-tu-menh-hop-huong-nao/ 
    pittsburghpenguinsclub.com/read-blog/189_why-is-the-popularity-of-universities-constantly-declining-today.html?mode=day 

  6. Hey there, I think your website might be having browser compatibility issues. When I look at your blog in Ie, it looks fine but when opening in Internet Explorer, it has some overlapping. I just wanted to give you a quick heads up! Other then that, awesome blog!

  7. Edwarddig表示:

    pin-up 141 casino: Pin Up Azerbaycan – ?Onlayn Kazino

  8. RobertSax表示:

    https://autolux-azerbaijan.com/# pin-up 141 casino

  9. Edwarddig表示:

    pin-up360: Pin-up Giris – pin-up360

  10. Edwarddig表示:

    Pin Up Kazino ?Onlayn: Pin-up Giris – Pin Up

  11. Edwarddig表示:

    Pin Up Azerbaycan: pin-up360 – ?Onlayn Kazino

  12. RobertSax表示:

    https://autolux-azerbaijan.com/# Pin Up Azerbaycan

  13. Edwarddig表示:

    pin-up kazino: Pin Up Azerbaycan – pin-up 141 casino

  14. Edwarddig表示:

    Pin-Up Casino: pin-up360 – pin-up 141 casino

  15. Ismaelfer表示:

    Can you tell us more about this? I’d like to find out some additional information.

    gadjetforyou.ru/kupit-diplom-10 
    http://www.vinhphatmobile.com/contact/ 
    hellohome.ir/en/agent/mahyar-shahbazi/ 
    belobog1.freehostia.com/phpBB2/profile.php?mode=viewprofile&u=177187 
    childtemperament.org/index.php?lang=es 

  16. RobertSax表示:

    https://autolux-azerbaijan.com/# Pin up 306 casino

  17. O cassino que todos recomendam Blaze

  18. A casa dos grandes vencedores Blaze

  19. Edwarddig表示:

    Pin up 306 casino: Pin Up Azerbaycan – Pin Up Azerbaycan ?Onlayn Kazino

  20. VlasovOnemspi表示:

    https://Dr-nona.ru/ – доктор нонна

  21. Seu cassino de confianca online Blaze

  22. Lewisslund表示:

    Hmm is anyone else having problems with the pictures on this blog loading? I’m trying to find out if its a problem on my end or if it’s the blog. Any feedback would be greatly appreciated.

    stroimnsk.ru/wooden/proekt-derevyannogo-doma-iz-profilirovannogo-brusa-skazka-100/ 
    bestcoolfun.ru/page/32 
    adventure-vinwonders.com/vi/bai-viet-du-lich/an-gi-o-phu-quoc-top-30-dac-san-phu-quoc-cuc-ninh-mieng-du-khach/ 
    brisbaneglobaltens.com/tournament/brisbane 
    ifvex.com/blogs/2501/Why-is-the-popularity-of-higher-education-decreasing-in-our 

  23. O cassino que oferece as melhores condicoes Blaze

  24. As melhores slots estao aqui Blaze

發佈留言

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