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

17,114 Responses

  1. Heal the sick – cleanse the lepers – elevate the lifeless – solid out devils.

  2. In consequence, a Swedish tilting practice had to be developed.

  3. The Short-Time period Rentals/Transient Occupancy Tax Map Viewer presents the Quick-Time period Rentals (STRs) and Transient Occupancy Tax locations (TOTs) in town of Oceanside.

  4. That’s a very massive factor.

  5. The volunteer heart, concierge desk, and birthday celebration rooms are also on this level.

  6. Lady Georgiana Fane, like her mother of a lively disposition, declined a proposal of marriage from Lord Palmerston, preferring instead to conduct a liaison with the Duke of Wellington.

  7. 利く 意味表示:

    William Margolis, the proprietor of a neighborhood billboard firm, circulated a petition to have Railway Categorical Agency building changed as part of the development work.

  8. James Levie McIntosh, Chief Engineer, Blue Star Line Ltd.

  9. Leslie Albert Wood, Grade 7, Division of Health.

  10. Joseph Rockwell Swan was an American funding banker, football participant and coach.

  11. Lazrlbt表示:

    Как приобрести аттестат о среднем образовании в Москве и других городах
    sntnika.forumex.ru/viewtopic.php?f=26&t=416

  12. This drug would potentially save a wounded soldier’s life as it was for use while he waited for medical help to arrive, due to this fact reducing the shock of the injury.

  13. Derekfar表示:

    slot tr online: en kazancl? slot oyunlar? – en kazancl? slot oyunlar?

  14. Professor Emeritus of Bacteriology, University of London.

  15. This results in a large amount of recyclable waste (particularly paper) being too soiled to reprocess, but has benefits as properly: The town need not pay for the separate assortment of recyclates, no public schooling is required, and any adjustments to the recyclability of certain materials are implemented the place sorting occurs.

  16. The Kind U5 is the Uniform Termination Notice for Securities Business Registration.

  17. Food & Health in the Scottish Highlands: Four Lectures from a Rural Apply by W.W.

  18. She married COOK BROADWAY CONN September 08, 1936 in San Antonio, Texas, USA19.

  19. In 1898, the Santa Fe Depot was constructed (along the San Francisco and San Joaquin Valley Railroad line) and operated till 1970.

  20. From the beginning, AFT’s work has been about a lot greater than farmland safety.

  21. Restore, although more can be less expensive, as insurance and property taxes.

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

  23. He just checked out me, shook his head and said simply mentioned ‘No.’ Very calmly however in a ‘I can’t believe you think that’s how it works’ tone of voice like I’d advised him fake information.

發佈留言

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