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

19,974 Responses

  1. VABAKAWLBIXle表示:

    cheap valsartan 80 mg [url=https://valsartan.top/]buy valsartan 80 mg pill[/url] valsartan 160 mg usa

  2. Cthrinepisn表示:

    essays online to buy
    professional essay writers for hire
    help with an essay

  3. Leilahpisn表示:

    i need help writing a descriptive essay
    best essay writing service review
    compare and contrast essay help

  4. Twylapisn表示:

    write my essay generator
    professional essay writers for hire
    essay editor service

  5. I am very impressed with your writing casinocommunity I couldn’t think of this, but it’s amazing! I wrote several posts similar to this one, but please come and see!

  6. XsaYgylLiZgt表示:

    On this site u can buy all known EXTREME X LIME for very good price!

  7. Jafehaugpg表示:

    pharmacie leclerc dreux pharmacie lafayette saint martin du touch pharmacie xonrupt longemer [url=https://toolbarqueries.google.fr/url?q=https://www.ufrgs.br/comacesso/forum/topic/acheter-sustanon-testosterone-pas-cher/#postid-73224]https://www.youtube.com/redirect?q=https://www.ufrgs.br/comacesso/forum/topic/paroxetine-paxil-en-pharmacie-belgique/#postid-55816[/url] pharmacie de garde aujourd’hui nimes .
    therapie de couple wavre [url=https://www.youtube.com/redirect?q=https://www.ufrgs.br/comacesso/forum/topic/lorazepam-ativan-livraison-france/#postid-54709]https://www.youtube.com/redirect?q=https://www.ufrgs.br/comacesso/forum/topic/zolpidem-ambien-livraison-suisse/#postid-54141[/url] pharmacie en ligne lyon .
    pharmacie de garde marseille 10 mai 2020 [url=https://maps.google.fr/url?q=https://www.ufrgs.br/comacesso/forum/topic/acheter-zithromax-azithromycine-pas-cher/#postid-74591]https://toolbarqueries.google.fr/url?q=https://www.ufrgs.br/comacesso/forum/topic/vente-depakene-valporic-acid-sans-ordonnance/#postid-73620[/url] therapie de couple drummondville , pharmacie bordeaux quai de bacalan .

  8. Dronapisn表示:

    order custom essay
    persuasive essay help
    my custom essay

  9. Charopisn表示:

    using essay writing service
    cheap essay help
    quality custom essays

  10. Rhiamonpisn表示:

    essay writing service discount code
    what is the best essay writing service
    essays on the movie the help

  11. XsaYaylLiZgt表示:

    On this site u can buy all known KILLA FLASH 4mg for very good price!

  12. DABAKAWLBIXgi表示:

    valsartan 80 mg ca [url=https://diovan.live/]order valsartan sale[/url] diovan 80 mg pill

  13. Antoniepisn表示:

    i need help to write an essay
    write my essay services
    online essay help

  14. XsaXaylLiZgt表示:

    On this site u can buy all known BLCK SPEARMINT for very good price!

  15. Tammiepisn表示:

    college application essay writing service
    can i hire someone to write my essay
    online essay service

  16. Pennypisn表示:

    essay writing service discount
    law essay help
    write my admissions essay

  17. NABAKAWLBIXwy表示:

    nebivolol [url=https://nebivolol.live/]bystolic online buy[/url] purchase bystolic without prescription

  18. Chelsaepisn表示:

    help on essay writing
    essay writing service law
    best college essay service

  19. Nanicepisn表示:

    buy essay writing online
    cheap essay writing service usa
    professional college application essay writers

  20. BABAKAWLBIXvc表示:

    bystolic canada [url=https://bystolic.life/]buy generic nebivolol 5 mg[/url] buy nebivolol 5 mg online cheap

  21. Charitapisn表示:

    essay writing help for students
    custom essays writing service
    essay online help

  22. HaroldNails表示:

    Что такое гибкие кабели?
    Самый простой кабель – это одножильный провод с пластиковой оболочкой.
    Он может гнуться и сохраняет этот изгиб – если вы не делаете это слишком часто, потому что иначе провод ломается.
    Такие простые кабели используются в домашних установках.
    После установки кабель остается нетронутым в течение десятилетий.
    Такие твердые провода не подходят для многих других применений, где кабели должны быть гибкими и эластичными.
    Здесь проводники в жилах состоят из нитей – пучков тонких проволок, которые можно сгибать миллионы раз, в зависимости от конструкции, не ломая и не теряя свойств тока или передачи данных.
    Одно из самых неприятных мест для кабеля – тяговая цепь. Здесь кабели питания, сервопривода и передачи данных расположены близко друг к другу и перемещаются вперед-назад по мере работы машины.
    Иногда со скоростью более пяти метров в секунду с ускорением, превышающим ускорение силы тяжести более чем в пять раз.
    Кабели проложены в тяговой цепи таким образом, что они изгибаются только в одном направлении.
    КГ 2х70

  23. Charitapisn表示:

    college entrance essay writing service
    admission essay writing services
    expert essay writers

發佈留言

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