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

  1. In addition, work orders generated can be more flexibly scheduled and managed via a browser enabled calendar utility that is integrated with the enterprise calendar system – such as Microsoft Exchange.

  2. Jame表示:

    Here is my homepage; Daycare Near Me By State (Jame)

  3. Darrelherse表示:

    casino slot siteleri: slot oyun siteleri – en iyi slot siteleri 2024

  4. 愁い 憂い表示:

    Theme for this year is ‘United against corruption for development, peace and security’.

  5. Large corporations typically offer these dividends because they have an abundance of cash on hand.

  6. Asset allocation is the premise of a profitable retirement planning strategy.

  7. dfh 株価表示:

    In 1929, the name of the country modified to the Kingdom of Yugoslavia and this was mirrored on the forex.

  8. Some authors say that it does not make a big difference; you can use any representative index and get similar results.

  9. 時期 配当表示:

    Max, D. T. (December 11, 2017).

  10. ダンス を表示:

    This has led many Vista UAC users to contemplate it troublesome, with some consequently either turning the function off or (for Windows Vista Enterprise or Windows Vista Final customers) placing it in auto-approval mode.

  11. 括り 意味表示:

    But the financial crisis and recession has dampened demand for commodities and energy, reducing demand for Canadian and Australian dollars.

  12. This will ensure that the logo has the impact and look you have worked so hard to develop.

  13. Temporary Increase in Credit for Alternative Fuel Vehicle Refueling Property: The new law modifies the credit rate and limit amounts for property placed in service in 2009 and 2010.

  14. Whether you are seeking insights into your career, finances, relationships, or personal growth, this article will help you unlock the wealth of opportunities that the Ace of Pentacles holds.

  15. gay_lbpr表示:

    Ставки на спорт для ЛГБТ сообщества | 1xbet для геев: новые горизонты | Полезная информация о 1xbet для геев | Куда лучше ставить гею на 1xbet? | Gay ставки на 1xbet: всё, что вам нужно знать
    gay phub in 1xbet https://1xbetcasinogayclub-ar.com/ .

  16. Top earners invest that extra money in productive economic activities or spend more of their time at the high-paying trade they do best (whether that be creating inventions or performing heart surgeries).

  17. The Flash additionally had a public debacle in 2016 once they hosted the Seattle Reign FC in a baseball stadium’s outfield on a pitch much narrower than FIFA pointers, drawing adverse nationwide media consideration to the league.

  18. There are significant risks when you undertake a SBA loan as you will need to provide a personal guarantee for the debt funding if you decide not to use equity financing for your business.

  19. Real estate investment groups offer a more hands-off, low-risk method of investing in real estate.

  20. A 2014 meta evaluation reported that long term publicity to particulate matter is linked to coronary events.

  21. In addition to stealing personal and financial data, phishers can infect computers with viruses and convince people to participate unwittingly in money laundering.

  22. Cindi Hagley, a real estate broker who specializes in selling “haunted” homes, emphasizes the importance of disclosure in maintaining transparency and integrity in real estate transactions.

  23. With the glycerin gone, biodiesel can run most diesel engines with less fouling and cold-weather problems.

  24. Sterling Highschool Athlete. She is a licensed clinical social worker and an assistant clinical professor of psychiatry and behavioral sciences at George Washington University Faculty of Medicine, the place she teaches listening expertise to medical college students.

  25. Ethereum has its own cryptocurrency called Ether.

  26. Th is ᠎data h​as be en gen er​at ed ᠎with G SA Content G᠎enerat or  Demoversi on᠎.

發佈留言

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