【原創】
之前在很多競賽的題目中有這樣餓一類題,計算給定兩個日期之間的相隔天數,或者很多類似的題目,都是需要轉化到這個問題上時,之前用c++寫的時候思想是這樣的,一個結構體,包括年月日,還有一個計算下一天的函數,建立一個整形數組int buf[5001][13][32];看上去很嚇人吧,沒錯就是將5000年全部存下來,存什么呢,比如說讓0000-1-1為第一天,那么buf[0000][1][1] = 1;buf[0000][1][2]=2;這樣一開始初始化后,便將起全部存儲下來,計算兩個日期差直接兩個數組元素相減便得到結果;
但是用java可以直接利用內庫中的很多封裝類來做嘛,這才能體現java的強大嘛
說多了無聊,直接來代碼;
1 package com.jiajia.filedemo; 2 3 import java.text.ParseException; 4 import java.text.SimpleDateFormat; 5 import java.util.Calendar; 6 import java.util.Date; 7 8 public class Demo3 { 9 10 11 private static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); 12 13 public static void main(String []args) throws Exception{ 14 String first = "1995-9-2"; 15 String second = "2017-3-22"; 16 Date firstdate = format.parse(first); 17 Date seconddate = format.parse(second); 18 int cnt = longOfTwoDate(firstdate, seconddate); 19 System.out.println(cnt); 20 } 21 22 public static int longOfTwoDate(Date first,Date second) throws ParseException{ 23 Calendar calendar = Calendar.getInstance(); 24 calendar.setTime(first); 25 int cnt = 0; 26 while(calendar.getTime().compareTo(second)!=0){ 27 calendar.add(Calendar.DATE, 1); 28 cnt++; 29 } 30 return cnt; 31 } 32 }
沒有寫注釋,代碼很簡單啊,主要是
longOfTwoDate函數搞懂就好了,利用到了Calender這個類;有一個自加功能;所以so easy
---
### 最后
- 本文內容個人拙見,若有出入,歡迎指正。
- 歡迎賞臉關注:家佳Talk
