如何得到某月的最后一天是几号?
呵呵,是28日,还是29日,还是30日,还是31日。
其实也就是给定某年某月,怎么知道这个月有几天?哪个类可以实现?
问题点数:20、回复次数:11Top
1 楼xxben(001)回复于 2004-09-03 14:49:29 得分 0
你的问题与“得到任意一年中任意一天是星期几”的问题差不多啊
这有个算法的,不是很复杂,呵呵~Top
2 楼vericky(醉里挑灯看不见)回复于 2004-09-03 14:50:50 得分 0
也就是说,没有写好的方法可以用,只能自己算,是吧?Top
3 楼jerrysoft(阿吉)回复于 2004-09-03 15:02:18 得分 0
JAVA的本地化API好像有这个功能,不过当时没有仔细看明白。Top
4 楼mvmouse(mouse)回复于 2004-09-03 15:04:40 得分 0
自己写一个就可以了吗,只有2月特殊一些判断一下是否是闰年,其他月份的日数是不会变的!Top
5 楼030802()回复于 2004-09-03 15:09:03 得分 0
oracle中有这个函数啊,你只要传进去相应的参数就行了,例如:
last_day(to_date('" + date + "','yyyy-mm')),'dd'),date就是你传的参数啊Top
6 楼zcjl()回复于 2004-09-03 15:16:49 得分 20
java.util.Calendar类可以解决这个问题
如
Calendar date = Calendar.getInstance();
int year = ...;
int month = ...;
date.set(year, month, 1);
int maxDayOfMonth = date.getActualMaximum(Calendar.DAY_OF_MONTH)Top
7 楼zcjl()回复于 2004-09-03 15:20:41 得分 0
差点忘了,month的值要比实际小1
也就是说,如果想知道9月的天数
程序中应该是int month = 8;
1月份则是int month = 0;Top
8 楼cuizm(射天狼 http://www.j2soft.cn/)回复于 2004-09-03 15:25:55 得分 0
public int getMonthDayCount (int aYear, int aMonth)
{
aMonth --;
Calendar cdar = new GregorianCalendar ();
cdar.set (aYear, aMonth, 1);
return (cdar.getActualMaximum (Calendar.DAY_OF_MONTH));
}
Top
9 楼lliushine(小明)回复于 2004-09-03 15:30:31 得分 0
你可以先求得本月的第一天
然后再得到下个月的第一天
把下个月的第一天减去1不就行了吗Top
10 楼Tasia(灯盏)回复于 2004-09-03 15:33:46 得分 0
select last_day(to_date('200408','YYYYMM')) from dual
其中'200408'可以换成任何月份。在Oracle中可行。Top
11 楼xxben(001)回复于 2004-09-03 15:42:04 得分 0
zcjl() 的方法应该是对的Top




