查询月的天数
java
Calendar c= Calendar.getInstance();
c.set(Calendar.YEAR, nYear);
c.set(Calendar.MONTH, nMonth -1);
//这个时候由于2月没有30日,而今天是30日,所以c已经自动跳转到了3月了,所以你要在之前调用一次c.set(Calendar.DATE, 1);才可以保证不出现这个问题
c.set(Calendar.DATE, 1);
return c.getActualMaximum(Calendar.DAY_OF_MONTH);
// 获取当月第一天和最后一天
SimpleDateFormat format = newSimpleDateFormat("yyyy-MM-dd");
String firstday, lastday;
// 获取前月的第一天
cale = Calendar.getInstance();
cale.add(Calendar.MONTH, 0);
cale.set(Calendar.DAY_OF_MONTH, 1);
firstday = format.format(cale.getTime());
// 获取前月的最后一天
cale = Calendar.getInstance();
cale.add(Calendar.MONTH, 1);
cale.set(Calendar.DAY_OF_MONTH, 0);
lastday = format.format(cale.getTime());
System.out.println("本月第一天和最后一天分别是 : "+ firstday +" and "+ lastday);
oracle
本月:
SELECT FDATE
FROM (SELECT TRUNC(SYSDATE, 'MONTH') + LEVEL - 1 AS FDATE,LEVEL
FROM DUAL
CONNECT BY LEVEL <= 31) T
WHERE TO_CHAR(FDATE, 'MM') = TO_CHAR(SYSDATE, 'MM');
时间段:
SELECT TO_CHAR(TO_DATE('2014-10-01', 'yyyy-MM-dd') + LEVEL - 1, 'yyyyMMdd') as daylist
FROM DUAL
CONNECT BY LEVEL <=
trunc(to_date('2015-06-01', 'yyyy-MM-dd') -
to_date('2014-10-01', 'yyyy-MM-dd')) + 1
查询年的月份
本年:
SELECT ADD_MONTHS(TRUNC(SYSDATE, 'YEAR'), LEVEL - 1) AS MONTHLIST
FROM DUAL
CONNECT BY LEVEL <= 12
时间段:
SELECT TO_CHAR(ADD_MONTHS(TO_DATE('2014-10', 'yyyy-MM'), ROWNUM - 1),
'yyyyMM') as monthlist
FROM DUAL
CONNECT BY LEVEL<=
months_between(to_date('2015-06', 'yyyy-MM'),
to_date('2014-10', 'yyyy-MM')) + 1