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

35,358 Responses

  1. Danieldrymn表示:

    Clom Fast Pharm: Clom Fast Pharm – order generic clomid online

  2. BrianTom表示:

    buy zestril lisinopril price of lisinopril 20 mg

  3. Richardaudit表示:

    https://zithpharmonline.shop/# ZithPharmOnline

  4. Michaelscoob表示:

    where to buy clomid pill: can you get clomid pills – where can i buy clomid without rx

  5. BrianTom表示:

    how much is amoxicillin AmOnlinePharm where to get amoxicillin over the counter

  6. Michaelscoob表示:

    Lisin Express: Lisin Express – Lisin Express

  7. Ava Johnson表示:

    If you’re a property owner looking to get a loan, a secured loan could be a wise option. Leverage better rates by using your home as security.

  8. Danieldrymn表示:

    Pred Pharm Net: Pred Pharm Net – Pred Pharm Net

  9. LanceFen表示:

    AmOnlinePharm: amoxicillin 500mg capsule – canadian pharmacy amoxicillin

  10. Danieldrymn表示:

    where can i buy cheap clomid without insurance: get generic clomid without rx – can you buy clomid without prescription

  11. Are you considering a loan against your home to consolidate your debts? Find out more and check what solutions may be available to you.

  12. Michaelscoob表示:

    order amoxicillin online: AmOnlinePharm – 875 mg amoxicillin cost

  13. Richardaudit表示:

    https://clomfastpharm.shop/# cost of cheap clomid pill

  14. Michaelscoob表示:

    where buy cheap clomid: can i purchase generic clomid tablets – can i order clomid for sale

  15. BrianTom表示:

    Lisin Express Lisin Express lisinopril 10 12.55mg

  16. Mwbvdh表示:

    motilium online order – cyclobenzaprine price purchase flexeril for sale

  17. Danieldrymn表示:

    ZithPharmOnline: ZithPharmOnline – buy zithromax online fast shipping

  18. Emily Patel表示:

    Uncertain whether a secured loan is right for you? Explore the benefits, such as lower interest rates and increased flexibility.

  19. Richardaudit表示:

    http://lisinexpress.com/# Lisin Express

  20. Michaelscoob表示:

    amoxicillin buy canada: amoxicillin without rx – AmOnlinePharm

  21. alarme Ajax表示:

    Thanks for your post here. One thing I would like to say is always that most professional fields consider the Bachelor’s Degree like thejust like the entry level requirement for an online college degree. Though Associate Degrees are a great way to start, completing your current Bachelors reveals many entrances to various occupations, there are numerous internet Bachelor Course Programs available by institutions like The University of Phoenix, Intercontinental University Online and Kaplan. Another thing is that many brick and mortar institutions make available Online versions of their diplomas but generally for a considerably higher cost than the providers that specialize in online college degree plans.

  22. LanceFen表示:

    zithromax capsules australia: ZithPharmOnline – zithromax 500

  23. Explore how a homeowner loan can help you obtain the money you need without parting with your home. Review lenders and customise a plan that fits your needs.

發佈回覆給「Richardaudit」的留言 取消回覆

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