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

  1. A snarl is a definite threat gesture, however canines in all probability smile for the same reason we do: to let folks — or different canines — know they don’t imply any harm.

  2. A show insider said at the time: ‘Ola is a strict taskmaster.

  3. Kitchens require light in every square foot.

  4. Alternatively locate a stylist who will function with that which it’s best to generate one thing you prefer and in addition to present you with some ideas.

  5. промокод на подключение модуля Getcourse Pay [url=https://platezhnyj-modul-getkurs-promokod.ru]https://platezhnyj-modul-getkurs-promokod.ru[/url] .

  6. John Noel Evans, Supervisor, Mountstuart Dry Dock Co.

  7. 25 December – Instances began to rise sharply after Christmas.

  8. Turquoise is the most effective substitute for Yellow Sapphire.

  9. On July 5, it was announced that the Erie Railroad and the committees representing town of Passaic would have a brand new assembly on July 9 at Passaic City Hall.

  10. A mid-size curly shag minimize with curly bangs is a great cut for girls of any age.

  11. Clements, Erin (April 15, 2010).

  12. 4:24 for the Lord thy god is a consuming hearth, even a jealous god.

  13. For instance, if someone is having a particularly bad day and a buddy says, “Well, aren’t you having an incredible time?” The friend’s statement is verbally ironic because it means the opposite of what they’re saying.

  14. Pores and skin burns might produce considerable discomfort, but wouldn’t endanger the lives of the animals.

  15. Our mission is to create enjoyable and hilarious video games that folks can play together in the real world, bringing mates and families nearer collectively.

  16. Quite a bit! However this is the excellent news: this is certainly one of the easiest situations to handle in any relationship if you recognize what to say and do: Most necessary of all: don’t argue with him.

  17. Why did we have now that young Puerto Rican American lady who was an AmeriCorps volunteer and is now going to go on and be a physician after being a high school dropout?

  18. Whittaker’s turn. ‘I simply assume, we’ve spent a lot of time together, right from the start of our careers, the children grew up together, the families get on nicely.

  19. Decorating a room in a brand new type can clash with the outdated model in adjoining rooms.

  20. LarryCoell表示:

    slot tr online slot oyunlar? puf noktalar? slot oyunlar? puf noktalar?

  21. The film — or at the very least the idea of the film — has been in the works for greater than 20 years.

  22. Carat: A high-carat weighing clear blue colored Irani Firoza gemstone price is increased than a lesser-carat weighing Irani Firoza.

  23. Mason jar crafts are insanely common and present right now however we promise you’ve got by no means seen one this adorable and helpful at the identical time.

  24. John Gordon Burgess, MB, ChB, Common Medical Practitioner, Forfar.

  25. CarrollUnton表示:

    deneme bonusu veren siteler betturkey betturkey.com https://matadorbet.bid/# matadorbet giris

  26. Lazrvjo表示:

    Удивительно, но купить диплом кандидата наук оказалось не так сложно
    noxvillerp.5nx.ru/viewtopic.php?f=44&t=200

發佈留言

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