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

20,236 Responses

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

  2. Unemployment claims for December were increased than originally thought, and those momentary workers at the moment are being laid off.

  3. Before selecting which possibility is best for you, assume first about what you’re attempting to perform.

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

  5. Assistance might also be supplied to those who are no longer able to feed themselves.

  6. The default wake phrase is “Alexa,” but you can change it to “Amazon” or “Echo” using the app.

  7. Things i have observed in terms of laptop or computer memory is the fact that there are features such as SDRAM, DDR and so on, that must fit the features of the motherboard. If the computer’s motherboard is fairly current and there are no main system issues, upgrading the memory literally usually takes under one hour. It’s among the list of easiest computer system upgrade treatments one can think about. Thanks for discussing your ideas.

  8. However simply because there’s been a shift towards buying basic grocery gadgets and staying out of sit-down restaurants does not imply Individuals’ eating habits are improving in the recession.

  9. DanielAbice表示:

    http://prednibest.com/# prednisone buy

  10. Full, such that every one points on an indifference curve are ranked equally most popular and ranked both roughly most popular than every different level not on the curve.

  11. なんでもj表示:

    All products are coated by 30-day cash back assure and shipped worldwide.

  12. вывод из запоя на дому краснодар цены [url=www.automobilist.forum24.ru/?1-19-0-00000139-000-0-0-1730744829/]вывод из запоя на дому краснодар цены[/url] .

  13. Throughout tough financial occasions native development companies can work with development firms to advertise economic progress by implementing a range of financial growth packages which might be provided by varied government companies akin to, COMIDA, Empire State Development, Rochester Fuel and Electric, NYSERDA and Greater Rochester Enterprise.

  14. The reply, it seems, is that exiting enterprise house owners will want to interact a new actuality for the foreseeable future.

  15. The mystical significance of the veil of pomegranates lies in its connection to the sacred feminine and her unwavering ambition.

  16. GE Capital retained the Bank BPH authorized entity, together with its mortgage business.

  17. краснодар вывод из запоя [url=rio16.ukrbb.net/viewtopic.php?f=3&t=1117]краснодар вывод из запоя[/url] .

  18. Hmm it looks like your site ate my first comment (it was super long) so I guess I’ll just sum it up what I wrote and say, I’m thoroughly enjoying your blog. I as well am an aspiring blog writer but I’m still new to everything. Do you have any tips and hints for newbie blog writers? I’d genuinely appreciate it.

  19. These Fx professionals are have deep understanding of the market tendencies and might helps in getting the most effective overseas alternate rates.

  20. It’s cornmeal that has been boiled, which can then be eaten as a porridge.

  21. Naturally, there are myriad sophisticated details on how to actually get it to work, but it’s a easy thought on a high stage.

  22. It’s inclusive of all the transactions associated to the people like bank card usage, how the financial institution accounts are managed, test bounces (if any), present loans, mortgage repayments, credit card and mortgage purposes and many more.

  23. Most of the time, these luddites are outdated palms at the practice and they have all the pieces all crammed out apart from the overall (or at the very least they need to).

  24. Tourism in Afghanistan was at its peak in 1977.

  25. This presents big alternatives for speedy flexible packaging growth.

  26. One common technique is to simply to buy a share of each stock on an index such as the S&P (Normal & Poor’s) 500.

  27. KennethPah表示:

    cipro ciprofloxacin buy cipro without rx ciprofloxacin mail online

發佈留言

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