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

20,097 Responses

  1. Chandapisn表示:

    help with dissertation topic
    buy dissertation writing services
    dissertation abstracts

  2. baricitinib for lupus baricitinib eua baricitinib arthritis and rheumatism baricitinib and covid treatment

  3. Thivy表示:

    CHANGE LOCATION The Royal Commission found Crown Melbourne allowed international patrons to access funds to gamble at the casino via the Chinese-based bank card between 2012 and 2016. Now draw conclusions about the list of the Club World Casino bonuses that gives three different types of bonuses. After registration, you’ll be able to receive up to 300% interest, if you don’t want to risk, your deposit will increase three-fold, and there will be no risk. The most advantageous bonus – free spins, they allow receiving the jackpot. If you play on Monday, then in addition to the account will receive 66% of dollars on balance. You’d try to play and wait for a reward that will meet your expectations. NOTE: When playing with no deposit casino bonuses simply stick to one rule – 1 free bonus in between two real money deposits. This way your casino account will always stay in good standing! Plus, you will be able to cashout winnings from free spins or free chips! Play smart and win! https://rislamauto.com.bd/community/profile/yrpdanny5031453/ £200 Signup Bonus Claim now » To make sure that individuals who need help with a possible gambling problem get it, the casino uses the resources that are provided by GamCare. Slots Magic also allows any individual at any time to exclude themselves from being able to play at the casino. This is a responsible move to make on the part of the casino, and it is a sign that they are not a scam. Want more? Well, SlotsMagic Casino gives you another batch of daily offers: MORE INFORMATION Who does not love free spins? At Slots Magic casino you can use the bonus code or coupon code ‘Y520 to receive a whopping 100% bonus up to €100 and 50 free spins along with your deposit. Free spins are basically free bets that you are allowed on certain slots (Rich Wilde and the Book of Dead slot in this case). Using the free spins, you can play the slot and spin the reels without actually putting any of your own money on the line. What’s more? If you are to win, the winnings are yours to keep. There are some terms and conditions usually attached to free spins.

  4. Joetepisn表示:

    dissertation help in delhi
    definition of dissertation
    need help with dissertation

  5. seroquel and lithium seroquel 50 mg cost can you take quetiapine while pregnant what is quetiapine fumarate 50 mg used for

  6. aralen side effects buy chloroquine macular degeneration aralen how long what is aralen medicine

  7. Joetepisn表示:

    custom dissertation writing service 2019
    dissertation proposal help
    online dissertation writing

  8. olumiant cost表示:

    olumiant mГ©xico olumiant tablet olumiant indication usage olumiant market share

  9. Shaynapisn表示:

    professional writing service
    writing your dissertation
    help me

  10. baricitinib indications baricitinib 4 mg price olumiant reviews que es el baricitinib

發佈留言

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