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

15,415 Responses

  1. Here you’ll discover juicy grilled pork and turmeric-stained rooster skewers, however no pad Thai.

  2. For this Best of Argentina, Uruguay & Brazil tour getting the required visa(s) is the accountability for every individual traveller, as visa requirements range relying on your nationality.

  3. When border tensions eased, manufacturing companies were given substantial incentives and responsibility-free status to build factories there.

  4. Winchester Repeating Arms Company’s collaboration with John Browning introduced great success with an array of shotguns, including the Model 1885, which remains to be in production.

  5. The packaging persons are the one who assist us through out with their various acts.

  6. With a belief or a sequence of trusts, he could have helped his heirs avoid any property taxes upon his demise.

  7. Jeff Woodbury’s place might be crammed by Neil Hansen, downstream controller, as elected by the board of administrators.

  8. Sebastiano Cilio, Milan Italy – Worldwide & Stamp watches.

  9. Love the styling choices, too!

  10. Few of the planter households ever returned to the sea islands, and not till 1892 have been they compensated by the federal government for his or her plantation lands lost to conquest.

  11. Generally, you can use any spelling of the phrase resume when applying for a job.

  12. Whether it is sleek tables and chairs, a funky wine rack, or sleek trolleys to transport food and dishes, you will discover every part you want in a contemporary style.

  13. You’ll spend time attempting to convince individuals you’re the only sport in town as a substitute of significantly contemplating whether that’s true.

  14. The U.S. sales business is even greater than promoting.

  15. But on another stage, possibly it isnature.

  16. ティラナ表示:

    If a few of the gamers in the group have a quest that requires a sure item from the mob, the server instructs the shopper to display the icon for that item.

  17. slot gacor表示:

    This article is a breath of fresh air! The author’s unique perspective and perceptive analysis have made this a truly captivating read. I’m appreciative for the effort she has put into creating such an enlightening and thought-provoking piece. Thank you, author, for sharing your wisdom and stimulating meaningful discussions through your exceptional writing!

  18. bokep jilbab表示:

    F*ckin? awesome issues here. I am very happy to look your article. Thanks a lot and i’m looking ahead to contact you. Will you please drop me a e-mail?

  19. I?ve recently started a web site, the info you offer on this site has helped me greatly. Thank you for all of your time & work.

  20. Janelle表示:

    Here is my site … Daycare Near Me – Janelle,

  21. Hi there, I discovered your web site by the use of Google at the same time as searching for a comparable matter, your web site got here up, it seems great. I’ve bookmarked it in my google bookmarks.

  22. whoah this blog is fantastic i love reading your posts. Keep up the good work! You know, a lot of people are searching around for this info, you can help them greatly.

  23. Профессиональный сервисный центр по ремонту парогенераторов в Москве.
    Мы предлагаем: профессиональный ремонт парогенераторов
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  24. I am really loving the theme/design of your weblog. Do you ever run into any browser compatibility problems? A handful of my blog readers have complained about my website not operating correctly in Explorer but looks great in Opera. Do you have any solutions to help fix this problem?

  25. You made some first rate factors there. I appeared on the web for the issue and found most people will associate with with your website.

  26. pure cbd oil表示:

    Thanks for expressing your ideas. The one thing is that college students have a choice between federal student loan and also a private education loan where its easier to go with student loan debt consolidation than over the federal student loan.

  27. Normanfer表示:

    farmacia en casa online descuento: comprar cialis online seguro – farmacias online seguras en espaГ±a

  28. Thanks on your marvelous posting! I certainly enjoyed reading it, you happen to be a great author.I will make sure to bookmark your blog and will often come back in the foreseeable future. I want to encourage that you continue your great writing, have a nice weekend!

  29. slot online表示:

    Hi there just wanted to give you a brief heads up and let you know a few of the pictures aren’t loading properly. I’m not sure why but I think its a linking issue. I’ve tried it in two different web browsers and both show the same outcome.

發佈留言

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