這裡主要是由於求月份差,年份差,甚至需要求天及其以下的差,(天及其一下,就用getTime()方法就可以直接搞定了,然後就是時間的計算,比如getTime()/1000/60/60/24之類的就是求秒,分,小時,天,)
說一下需求,起始是為了資料庫查詢方便,因為日誌表是一天一個,或者多天一個,所以這裡就需要統計表名,這裡就舉一個月表來做例子了,也就是一個月寫一個日誌表.所以首先是確定表.然後查資料,也許是自己的經驗太少.在後台些Java處理的時候,不太瞭解Oracle是否有更好的方法來進行處理,所以就用了這個笨辦法.直接查表,其中知道表是最主要的,以下就先來知道表吧.
可能這次寫的還不是很全,說是有月年天,但是可能包含不是那麼全,但是包含了月份的處理,其實都是整合了好多人用過的內容了,這裡總結也不是很好,主要是工作當中不斷的改進,不斷的深入學習.
但是還是與大家分享一下自己的一點點小經驗吧,雖然就是一些基本的問題.呵呵!
以下是得到月份數,以兩個時間參數來算.還有時間格式問題,這個根據自己需求定義吧,呵呵!(我就用下面的了.)
//時間處理,時間的總月份數.<br />Date st = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse(startTime);<br />Date et = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse(endTime);</p><p>Calendar ca1 = Calendar.getInstance();<br />Calendar ca2 = Calendar.getInstance();<br />ca1.setTime(st);<br />ca2.setTime(et);</p><p>int ca1Year = ca1.get(Calendar.YEAR);<br />int ca1Month = ca1.get(Calendar.MONTH);</p><p>int ca2Year = ca2.get(Calendar.YEAR);<br />int ca2Month = ca2.get(Calendar.MONTH);<br />int countMonth = 0;//這個是用來計算得到有多少個月時間的一個整數,<br />if(ca1Year==ca2Year){<br />countMonth = ca2Month - ca1Month;<br />}else{<br />countMonth = (ca2Year - ca1Year)*12 + (ca2Month - ca1Month);<br />}<br />//這裡的年數,相應的就知道了吧,呵呵,直接相減就可以得到了,呵呵,程式寫得還算規整,所以應該能夠看得懂的.<br />
得到了月份數,其次是處理.
這裡以 countMonth 來計算有幾個月.
//然後處理得到時間表.<br />//設定表名<br />//迴圈來得到多少個月,<br />for(int count = 0;count<=countMonth;count++){<br />String tblAfter = DateAdd(count,startTime);<br />//System.out.println("----->月份是:"+tblAfter);<br />String stTime = "USER_OPER_LOG" + tblAfter;<br />if(checkTblName(stTime)){<br />if(count==0){</p><p>}else if(count==countMonth){</p><p>}else{</p><p>}<br />}<br />}<br />//用一個方法來處理得到月份.<br />public String DateAdd(int count,String startTime){<br />String returnStr = "";<br />try{<br />Calendar ca = Calendar.getInstance();<br />Date date = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse(startTime);<br />ca.setTime(date);<br />ca.add(Calendar.MONTH, count);<br />int month = ca.get(Calendar.MONTH)+1;<br />if(month<10){<br />returnStr = String.valueOf(ca.get(Calendar.YEAR))+"0"+String.valueOf(month);<br />}else{<br />returnStr = String.valueOf(ca.get(Calendar.YEAR))+String.valueOf(month);<br />}</p><p>}catch(Exception e){<br />System.out.println("設定表名方法異常:"+e.getMessage());<br />}<br />return returnStr;<br />}<br />
到這裡其實就差不多了,因為時間得到了,表也得到了,然後就是處理資料,查詢語句而已了.
起始JavaScript也跟Java這個差不多,都是大同小異而已,雖然就是很簡單的體力活.呵呵,希望對有的人有協助.
暫時只能寫這麼多了,也許這兩天比較忙,所以就瞎亂的寫了下,等有時間處理吧,說說而已,呵呵!