计算一个月中有多少天,给他一个值(年和月),然后计算得到这个月中有多少天,这个怎么来做,谢谢你们了,如果是闰年的话这个要加上判断,谢谢!
解决方案 »
- 我在我的frame中放置了两个Splitpane,三个panel,每个panel中放了一个jtable,但是拖动不了,不知是为什么
- java的垃圾回收的疑问,求高手指点
- 本人刚刚学,求一个例子!
- 第一个hibernate 程序找不到数据库驱动
- 请问Java中有类似于C++中的const么?
- 程序哪里有错啊
- 大虾救命啊,如何得到一个jpg图像的高度和宽度?
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in))
- AWT和SWING的区别是什么
- 一个监听器控制两个button
- 问一个关于java语言的比较特殊的用法
- JTree中怎么改变节点的字体颜色?
* 取得指定月份的最后一天
*
* @param strdate String
* @return String
*/
public String getMonthEnd(String strdate)
{
java.util.Date date = parseFormatDate(getMonthBegin(strdate));
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.MONTH,1);
calendar.add(Calendar.DAY_OF_YEAR, -1);
return formatDate(calendar.getTime());
}
{
if(m==2)return (y%400==0||(y%4==0&&y%100!=0))?28:29;
return new int[]{0,31,28,31,30,31,30,31,31,30,31,30,31}[m];
}
int days[] = {31, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if( 2 == month && 0 == (year % 4) && ( 0 != (year % 100) || 0 == (year % 400) ) ) {//判断闰年,当 month = 2 时才判断,以减少计算量
days[2] = 29;
}
return( days[month] );
}其实就是判断闰年问题
1、能被 4 整除,但
2、不能被 100 整除,除非
3、能被 400 整除
Calendar c = Calendar.getInstance();
c.setTime(d);
c.add(c.MONTH,1);
c.set(c.DATE,1);
c.add(c.DATE,-1);
d = c.getTime();
System.out.println(d.getDate());
public static int getDaysInMonth(int year, int mon) {
java.util.GregorianCalendar d1 = new java.util.GregorianCalendar(year,mon-1,1);
java.util.GregorianCalendar d2 = (java.util.GregorianCalendar)d1.clone();
d2.add(Calendar.MONTH,1);
return (int) ((d2.getTimeInMillis()-d1.getTimeInMillis())/3600/1000/24);
}
Calendar cal = Calendar.getInstance();
int date = cal.getActualMaximum(Calendar.DATE);轻松简单,根本不必要什么下个月之类的
public static int getDaysInMonth(int year, int mon) {
java.util.GregorianCalendar date = new java.util.GregorianCalendar(year,mon,1);
date.add(Calendar.DATE, -1);
return (date.get(Calendar.DAY_OF_MONTH));
}
public static void main(String[] args) {
System.out.println(getDaysInMonth(2005, 01));
System.out.println(getDaysInMonth(2005, 02));
System.out.println(getDaysInMonth(2004, 02));
}
}
public static int getDaysInMonth(int year, int mon) {
java.util.GregorianCalendar date = new java.util.GregorianCalendar(year,mon-1,1);
return (date.getActualMaximum(Calendar.DATE));
}
GregorianCalendar d1 = new GregorianCalendar( year, mon - 1, 1 );
GregorianCalendar d2 = ( GregorianCalendar )d1.clone();
d2.add(Calendar.MONTH,1);
return (int) ((d2.getTimeInMillis()-d1.getTimeInMillis())/3600/1000/24);
}如果是闰年的话,返回的值不对.