關於Java(JavaScript)判斷處理時間的問題(包括月份,年,天等相關的差)

來源:互聯網
上載者:User

         這裡主要是由於求月份差,年份差,甚至需要求天及其以下的差,(天及其一下,就用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這個差不多,都是大同小異而已,雖然就是很簡單的體力活.呵呵,希望對有的人有協助.


         暫時只能寫這麼多了,也許這兩天比較忙,所以就瞎亂的寫了下,等有時間處理吧,說說而已,呵呵!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.