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,687 Responses

  1. One more important area is that if you are an older person, travel insurance for pensioners is something you should really think about. The elderly you are, the more at risk you will be for making something undesirable happen to you while in another country. If you are certainly not covered by many comprehensive insurance policies, you could have some serious complications. Thanks for sharing your good tips on this web blog.

  2. вывод из запоя цены ростов на дону kvitka.ukrbb.net/viewtopic.php?f=58&t=28000 .

  3. вывод из запоя ростов на дону [url=www.ximki.ukrbb.net/viewtopic.php?f=12&t=3696/]www.ximki.ukrbb.net/viewtopic.php?f=12&t=3696/[/url] .

  4. Diplomi_sfEa表示:

    купить диплом дагестан 1oriks-diplom199.ru .

  5. вывод. из. запоя. анонимно. ростов. [url=https://honey.ukrbb.net/viewtopic.php?f=45&t=16673]https://honey.ukrbb.net/viewtopic.php?f=45&t=16673[/url] .

  6. вывод из запоя ростовская область [url=https://www.stranaua.ukrbb.net/viewtopic.php?f=2&t=59741]https://www.stranaua.ukrbb.net/viewtopic.php?f=2&t=59741[/url] .

  7. Hi there! Do you use Twitter? I’d like to follow you if that would be ok. I’m undoubtedly enjoying your blog and look forward to new updates.

  8. One other issue is when you are in a problem where you would not have a co-signer then you may really need to try to wear out all of your financing options. You can get many grants and other scholarships that will present you with funding to help with education expenses. Many thanks for the post.

  9. вывод из запоя на дому ростов недорого http://www.kvitka.ukrbb.net/viewtopic.php?f=58&t=28000 .

  10. вывод из запоя цены на дому ростов https://ekonomimvmeste.ukrbb.net/viewtopic.php?f=14&t=65331 .

  11. вывод из запоя на дому ростов-на-дону http://family2.quadrobb.me/viewtopic.php?id=1836#p6861 .

  12. Thanks for the tips shared in your blog. Something else I would like to express is that fat reduction is not information about going on a dietary fad and trying to get rid of as much weight as possible in a few days. The most effective way to shed weight is by consuming it little by little and using some basic recommendations which can help you to make the most from a attempt to lose fat. You may recognize and be following some tips, although reinforcing knowledge never hurts.

  13. Diplomi_dtEa表示:

    купить диплом в жуковском 1oriks-diplom199.ru .

  14. crypto news表示:

    Nice blog here! Also your site loads up very fast! What host are you using? Can I get your affiliate link to your host? I wish my site loaded up as fast as yours lol

  15. One thing I would really like to say is the fact car insurance cancellations is a horrible experience so if you’re doing the proper things as being a driver you will not get one. A number of people do obtain the notice that they are officially dumped by their insurance company and many have to fight to get supplemental insurance after having a cancellation. Cheap auto insurance rates tend to be hard to get after having a cancellation. Knowing the main reasons with regard to auto insurance canceling can help motorists prevent burning off one of the most important privileges out there. Thanks for the strategies shared through your blog.

  16. промокод на продамус скидка подключение http://prodamus-promokod21.ru/ .

  17. Valuable information. Lucky me I found your site by accident, and I’m shocked why this accident did not happened earlier! I bookmarked it.

  18. Diplomi_jsEa表示:

    диплом бакалавра купить диплом бакалавра купить .

  19. Diplomi_bbEa表示:

    купить диплом бакалавра в москве [url=https://1oriks-diplom199.ru/]купить диплом бакалавра в москве[/url] .

  20. GlennSnofs表示:

    п»їbest mexican online pharmacies mexico pharmacy mexican pharmaceuticals online

  21. JefferyTar表示:

    remedies for ed: Canadian pharmacy online – new ed treatments

  22. Здесь можно преобрести купить сейф в москве цена сейфы

發佈留言

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