这里主要是由于求月份差,年份差,甚至需要求天及其以下的差,(天及其一下,就用getTime()方法就可以直接搞定了,然后就是时间的计算,比如getTime()/1000/60/60/24之类的就是求秒,分,小时,天,)
说一下需求,起始是为了数据库查询方便,因为日志表是一天一个,或者多天一个,所以这里就需要统计表名,这里就举一个月表来做例子了,也就是一个月写一个日志表.所以首先是确定表.然后查数据,也许是自己的经验太少.在后台些Java处理的时候,不太了解Oracle是否有更好的方法来进行处理,所以就用了这个笨办法.直接查表,其中知道表是最主要的,以下就先来知道表吧.
可能这次写的还不是很全,说是有月年天,但是可能包含不是那么全,但是包含了月份的处理,其实都是集成了好多人用过的内容了,这里总结也不是很好,主要是工作当中不断的改进,不断的深入学习.
但是还是与大家分享一下自己的一点点小经验吧,虽然就是一些基本的问题.呵呵!
以下是得到月份数,以两个时间参数来算.还有时间格式问题,这个根据自己需求定义吧,呵呵!(我就用下面的了.)
//时间处理,时间的总月份数.
Date st = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse(startTime);
Date et = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse(endTime);
Calendar ca1 = Calendar.getInstance();
Calendar ca2 = Calendar.getInstance();
ca1.setTime(st);
ca2.setTime(et);
int ca1Year = ca1.get(Calendar.YEAR);
int ca1Month = ca1.get(Calendar.MONTH);
int ca2Year = ca2.get(Calendar.YEAR);
int ca2Month = ca2.get(Calendar.MONTH);
int countMonth = 0;//这个是用来计算得到有多少个月时间的一个整数,
if(ca1Year==ca2Year){
countMonth = ca2Month - ca1Month;
}else{
countMonth = (ca2Year - ca1Year)*12 + (ca2Month - ca1Month);
}
//这里的年数,相应的就知道了吧,呵呵,直接相减就可以得到了,呵呵,程序写得还算规整,所以应该能够看得懂的.
得到了月份数,其次是处理.
这里以 countMonth 来计算有几个月.
//然后处理得到时间表.
//设置表名
//循环来得到多少个月,
for(int count = 0;count<=countMonth;count++){
String tblAfter = DateAdd(count,startTime);
//System.out.println("----->月份是:"+tblAfter);
String stTime = "USER_OPER_LOG" + tblAfter;
if(checkTblName(stTime)){
if(count==0){
}else if(count==countMonth){
}else{
}
}
}
//用一个方法来处理得到月份.
public String DateAdd(int count,String startTime){
String returnStr = "";
try{
Calendar ca = Calendar.getInstance();
Date date = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse(startTime);
ca.setTime(date);
ca.add(Calendar.MONTH, count);
int month = ca.get(Calendar.MONTH)+1;
if(month<10){
returnStr = String.valueOf(ca.get(Calendar.YEAR))+"0"+String.valueOf(month);
}else{
returnStr = String.valueOf(ca.get(Calendar.YEAR))+String.valueOf(month);
}
}catch(Exception e){
System.out.println("设置表名方法异常:"+e.getMessage());
}
return returnStr;
}
到这里其实就差不多了,因为时间得到了,表也得到了,然后就是处理数据,查询语句而已了.
起始JavaScript也跟Java这个差不多,都是大同小异而已,虽然就是很简单的体力活.呵呵,希望对有的人有帮助.
暂时只能写这么多了,也许这两天比较忙,所以就瞎乱的写了下,等有时间处理吧,说说而已,呵呵!