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

24,374 Responses

  1. Charlesbot表示:

    http://fastpillsformen.com/# cheapest viagra

  2. BrettTIT表示:

    Tadalafil Tablet: MaxPillsForMen.com – Generic Tadalafil 20mg price

  3. Donaldabula表示:

    order viagra cheap viagra buy Viagra over the counter

  4. Other third moves for White such because the Konstantinopolsky Opening (3.g3), and Inverted Hungarian Opening (3.Be2) are rarely played and offer White no advantage.

  5. BrettTIT表示:

    ed meds cheap: FastPillsEasy – low cost ed medication

  6. More than 1 million people immigrate to the U.S.

  7. Charlesbot表示:

    https://fastpillsformen.com/# Sildenafil Citrate Tablets 100mg

  8. BrettTIT表示:

    Generic Tadalafil 20mg price: buy cialis online – Cialis without a doctor prescription

  9. How about sharing the automotive you have got?

  10. Charlesbot表示:

    https://fastpillsformen.com/# buy Viagra over the counter

  11. 日経書評表示:

    Which country is this noodle soup dish commonly associated with?

  12. With only 20 built, it will cost you $2.2 million to experience the Lamborghini Sesto Elemento, unless you know the right people.

  13. Donaldabula表示:

    Generic Cialis price MaxPillsForMen.com Generic Cialis without a doctor prescription

  14. In June 2020, the New York Fed tightened its operations on the repo market, after seeing “substantial improvement” in market condition.

  15. As a real property investor, the selection is yours to make.

  16. Kylo Ren (Ben Solo) was a former Jedi and powerful darkish facet wielder, and the secondary antagonist of the Star Wars sequel trilogy.

  17. Lisa Gonzalez: That was Chris talking with Paul Kronberger, Chief Info Officer from Madison, Wisconsin.

  18. Bitcoin binary option is another method where they can grow their investments.

  19. Large number of individuals go for.

  20. Using the Flat Fee Listing to list your home will not just save you more money from the sale of your property, but it will also enable you to sell your house faster.

  21. St Hilda’s Oratory Bethnal Green 1909 Davis designed two single mild windows for St Hilda’s, this by way of James Powell and Sons.

  22. Donaldabula表示:

    cialis for sale [url=https://maxpillsformen.com/#]cialis for sale[/url] Generic Tadalafil 20mg price

  23. With years of experience, the pro traders study the market actively and as per their opinion, Futures trading is the best way to earn money in crypto trading.

  24. The resort is open year-round with 37 RV campsites, 29 of which offer full hookups.

  25. A sample of 1000 households with total investments equal or higher than $10,000 are interviewed to construct UBS/Gallup Index of Investor Optimism.

  26. Donaldabula表示:

    Generic Cialis price MaxPillsForMen.com buy cialis pill

  27. Charlesbot表示:

    https://fastpillsformen.com/# Order Viagra 50 mg online

  28. We introduced this pedal on the Philly guitar present within the fall of 2003.

  29. Though not listed by the NBER, another factor in favor of this alternate definition is that a long-term economic contraction may not always have two consecutive quarters of negative growth, as was the case in the recession following the bursting of the dot-com bubble.

發佈留言

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