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

16,803 Responses

  1. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали сервисный центр huawei в москве, можете посмотреть на сайте: сервисный центр huawei
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  2. CurtisIncix表示:

    пин ап зеркало: pinup kazi – pinup kazi

  3. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали сервисный центр philips в москве, можете посмотреть на сайте: сервисный центр philips
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  4. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали сервисный центр huawei в москве, можете посмотреть на сайте: сервисный центр huawei
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  5. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали сервисный центр philips в москве, можете посмотреть на сайте: сервисный центр philips
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  6. buket_kyma表示:

    Лучшие варианты букета невесты, которые вас вдохновят.
    Шаг за шагом: соберите уникальный букет невесты, для особенного момента.
    Топ-10 свадебных букетов невесты, для создания завораживающего вида.
    Как сэкономить на букете невесты без потери красоты, который порадует вас и вашего жениха.
    Букет невесты из живых цветов vs искусственных: что выбрать?, для сохранения воспоминаний о свадьбе.
    Простота и гармония: как создать стильный букет невесты в минималистическом стиле, который подчеркнет вашу нежность и изящество.
    Как выбрать букет невесты, который идеально подойдет к свадебному наряду, для выразительных свадебных образов.
    букет невесты купить в нижнем новгороде букет невесты купить в нижнем новгороде .

  7. CurtisIncix表示:

    пин ап казино: пин ап казино – пинап казино

  8. DarioTob表示:

    pinup: пинап казино – pinup

  9. Real estate表示:

    I just like the helpful info you supply to your articles. I?ll bookmark your blog and take a look at once more here frequently. I am slightly sure I?ll be told many new stuff proper here! Best of luck for the following!

  10. Jamesdiure表示:

    пин ап казино: pin up казино – pinup

  11. Here is my homepage – highstakespoker

  12. DarioTob表示:

    pinup: pinup-kazi.kz – pinup kazi

  13. Makler表示:

    What i do not realize is actually how you’re not really much more well-liked than you may be right now. You are so intelligent. You realize therefore significantly relating to this subject, made me personally consider it from a lot of varied angles. Its like men and women aren’t fascinated unless it?s one thing to accomplish with Lady gaga! Your own stuffs nice. Always maintain it up!

  14. Makler表示:

    Wow, fantastic blog layout! How long have you been blogging for? you make blogging look easy. The overall look of your web site is great, let alone the content!

  15. I have seen plenty of useful points on your web site about pc’s. However, I’ve the judgment that laptops are still not quite powerful enough to be a option if you often do jobs that require lots of power, like video editing and enhancing. But for internet surfing, microsoft word processing, and the majority of other popular computer functions they are okay, provided you never mind the tiny screen size. Thanks for sharing your notions.

  16. Makler表示:

    Fantastic blog! Do you have any hints for aspiring writers? I’m hoping to start my own site soon but I’m a little lost on everything. Would you advise starting with a free platform like WordPress or go for a paid option? There are so many options out there that I’m totally confused .. Any suggestions? Kudos!

  17. Immobilien表示:

    Do you mind if I quote a few of your posts as long as I provide credit and sources back to your site? My blog is in the very same niche as yours and my visitors would certainly benefit from a lot of the information you present here. Please let me know if this alright with you. Regards!

  18. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали официальный сервисный центр huawei, можете посмотреть на сайте: сервисный центр huawei
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  19. whoah this weblog is magnificent i really like studying your articles. Keep up the good paintings! You recognize, a lot of individuals are searching around for this info, you could aid them greatly.

發佈留言

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