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

36,755 Responses

  1. StephenCer表示:

    USACanadaPharm: reliable canadian pharmacy – is canadian pharmacy legit

  2. Georgefig表示:

    посмотреть на этом сайте зеркало vodkabet

  3. Thanks for the suggestions about credit repair on your web-site. A few things i would offer as advice to people is always to give up a mentality that they’ll buy now and fork out later. Being a society most of us tend to do this for many issues. This includes trips, furniture, along with items we would like. However, you must separate your wants from all the needs. As long as you’re working to fix your credit score make some trade-offs. For example you are able to shop online to save cash or you can look at second hand suppliers instead of highly-priced department stores pertaining to clothing.

  4. KellyNig表示:

    visit this site right here https://binslist.com/

  5. Dwightkak表示:

    ordering drugs from canada: USACanadaPharm – usa canada pharm

  6. TimothyDok表示:

    usa canada pharm canadian pharmacy meds canadapharmacyonline

  7. Albertbiave表示:

    http://usacanadapharm.com/# vipps approved canadian online pharmacy

  8. Samuelcuh表示:

    usa canada pharm: legit canadian pharmacy – best rated canadian pharmacy

  9. KellyNig表示:

    pop over to these guys https://binslist.com

  10. Samuelcuh表示:

    canada ed drugs: online canadian pharmacy – online canadian pharmacy

  11. Albertbiave表示:

    https://usacanadapharm.shop/# my canadian pharmacy rx

  12. Samuelcuh表示:

    usa canada pharm: canadian pharmacy meds – reliable canadian pharmacy

  13. I?d must examine with you here. Which isn’t one thing I usually do! I take pleasure in studying a put up that may make folks think. Also, thanks for allowing me to comment!

  14. It?s actually a great and helpful piece of info. I?m glad that you shared this useful info with us. Please keep us informed like this. Thanks for sharing.

  15. Albertbiave表示:

    http://usacanadapharm.com/# usa canada pharm

  16. Thanks for making me to achieve new suggestions about desktops. I also have belief that one of the best ways to keep your notebook computer in leading condition has been a hard plastic-type material case, and also shell, that fits over the top of your computer. These kinds of protective gear tend to be model specific since they are made to fit perfectly across the natural housing. You can buy all of them directly from the vendor, or through third party places if they are for your mobile computer, however don’t assume all laptop can have a cover on the market. Once more, thanks for your points.

  17. Samuelcuh表示:

    USACanadaPharm: pet meds without vet prescription canada – USACanadaPharm

  18. CoreyReupt表示:

    Концентрат не содержащий растворителей полученный из замороженного или высушенного канабиса
    https://rosinwax.org/

  19. Albertbiave表示:

    https://usacanadapharm.com/# best canadian pharmacy to buy from

  20. TimothyDok表示:

    northwest canadian pharmacy canadian pharmacy 24 usa canada pharm

  21. Samuelcuh表示:

    USACanadaPharm: usa canada pharm – USACanadaPharm

  22. Dwightkak表示:

    USACanadaPharm: USACanadaPharm – usa canada pharm

  23. Thanks for your submission. I also believe laptop computers are getting to be more and more popular right now, and now are sometimes the only sort of computer utilised in a household. This is due to the fact that at the same time potentially they are becoming more and more inexpensive, their processing power keeps growing to the point where they are as strong as pc’s from just a few years ago.

  24. You actually make it seem so easy with your presentation but I find this topic to be actually something which I think I would never understand. It seems too complicated and extremely broad for me. I’m looking forward for your next post, I?ll try to get the hang of it!

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

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