如何判断每个月有几个星期天? 如何判断每个月有几个星期天? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 java.util.Hashtable ht=new java.util.Hashtable(12);java.util.Calendar c=java.util.Calendar.getInstance();c.set(2006,0,1);while(c.get(c.YEAR)==2006){ c.set(c.DAY_OF_YEAR,c.get(c.DAY_OF_YEAR)+1); if(c.get(c.DAY_OF_WEEK)==1) { Integer month=Integer.valueOf(c.get(c.MONTH)); Integer obj=(Integer)ht.get(month); if(obj==null) ht.put(month,Integer.valueOf(1)); else ht.put(month,Integer.valueOf(obj.intValue()+1)); }}for(int i=0;i<12;i++){ int week=((Integer)ht.get(Integer.valueOf(i))).intValue(); System.out.println((i+1)+"月,共有"+week+"个星期天.");}此方法感觉有点笨, 哈哈. 不知那位大侠,还有高招.分享一下吧 java.util.Hashtable ht=new java.util.Hashtable(12);java.util.Calendar c=java.util.Calendar.getInstance();c.set(2006,0,1);//先把日期改为1月1日while(c.get(c.YEAR)==2006){ c.set(c.DAY_OF_YEAR,c.get(c.DAY_OF_YEAR)+1);//把日期改为明天 if(c.get(c.DAY_OF_WEEK)==1)//判断是否是星期天.(星期天是一个星期中的第一天) { Integer month=Integer.valueOf(c.get(c.MONTH));//取月份 Integer obj=(Integer)ht.get(month);//取ht中月份的值 if(obj==null) ht.put(month,Integer.valueOf(1));////如果不存在,默认值为1 else ht.put(month,Integer.valueOf(obj.intValue()+1));////否则,加1 }}for(int i=0;i<12;i++){ int week=((Integer)ht.get(Integer.valueOf(i))).intValue();///i+1 是月份 System.out.println((i+1)+"月,共有"+week+"个星期天.");}版主呢.申请加精...... 看看这个是不是你想要的:public static void main(String args[]) { int weekdays[] = new int[12]; /* 每个月有几个周日结果 */ int startYear = 2005; /* 想要统计的年份 String curDate = startYear+"0101"; GregorianCalendar cal = new GregorianCalendar(); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd"); try { cal.setTime(dateFormat.parse(curDate)); } catch (ParseException e) { // TODO 自动生成 catch 块 e.printStackTrace(); } /* yyyy0101所在的周日有可能是上年的 */ cal.set(GregorianCalendar.DAY_OF_WEEK, GregorianCalendar.SUNDAY); if (cal.get(GregorianCalendar.YEAR) == startYear) weekdays[cal.get(GregorianCalendar.MONTH)]++; while (true) { System.out.println("sunday=" + dateFormat.format(cal.getTime())); cal.add(GregorianCalendar.DATE, 7); if (cal.get(GregorianCalendar.YEAR) != startYear) break; weekdays[cal.get(GregorianCalendar.MONTH)]++; } System.out.println("over!"); } 哦哦...应该把: /* yyyy0101所在的周日有可能是上年的 */...后面的部分都放到try里 c.set(2006,0,1);//先把日期改为1月1日这句我这里怎么出错阿 可能那是笔误,不存在2006-00-01,改为c.set(2006,1,1); TO:qingoodrar請你仔細去看看API吧。不懂就不要隨便說! 嘿嘿,悔过:Month value is 0-based. e.g., 0 for January.多谢楼上指教! 高分请教一个问题 用<html:link>传参,如何在另外一个页面得到 刚开始学JSP,给推荐一下好书,还有网站,QQ群也行! 关于用request.getAttribute()的不解问题--救命!! 一个注册页面关于文本框的限制问题! 如何启动JIVE论坛 为什么无法在jsp中调用我的javabean? 判断数据库中的记录是否存在? jsp中如何实现上传及下载文件 spring3+hibernate4+ehcache,使用原生sql查询后得到的缓存,从缓存查询数据报错 有人用过struts-menu2.0吗? 网页多表格,求实现最大化,最小化,恢复等功能?
java.util.Calendar c=java.util.Calendar.getInstance();
c.set(2006,0,1);
while(c.get(c.YEAR)==2006)
{
c.set(c.DAY_OF_YEAR,c.get(c.DAY_OF_YEAR)+1);
if(c.get(c.DAY_OF_WEEK)==1)
{
Integer month=Integer.valueOf(c.get(c.MONTH));
Integer obj=(Integer)ht.get(month);
if(obj==null)
ht.put(month,Integer.valueOf(1));
else
ht.put(month,Integer.valueOf(obj.intValue()+1));
}
}for(int i=0;i<12;i++)
{
int week=((Integer)ht.get(Integer.valueOf(i))).intValue();
System.out.println((i+1)+"月,共有"+week+"个星期天.");
}
此方法感觉有点笨, 哈哈. 不知那位大侠,还有高招.分享一下吧
java.util.Calendar c=java.util.Calendar.getInstance();
c.set(2006,0,1);//先把日期改为1月1日
while(c.get(c.YEAR)==2006)
{
c.set(c.DAY_OF_YEAR,c.get(c.DAY_OF_YEAR)+1);//把日期改为明天
if(c.get(c.DAY_OF_WEEK)==1)//判断是否是星期天.(星期天是一个星期中的第一天)
{
Integer month=Integer.valueOf(c.get(c.MONTH));//取月份
Integer obj=(Integer)ht.get(month);//取ht中月份的值
if(obj==null)
ht.put(month,Integer.valueOf(1));////如果不存在,默认值为1
else
ht.put(month,Integer.valueOf(obj.intValue()+1));////否则,加1
}
}
for(int i=0;i<12;i++)
{
int week=((Integer)ht.get(Integer.valueOf(i))).intValue();///i+1 是月份
System.out.println((i+1)+"月,共有"+week+"个星期天.");
}
版主呢.申请加精......
int weekdays[] = new int[12]; /* 每个月有几个周日结果 */
int startYear = 2005; /* 想要统计的年份
String curDate = startYear+"0101";
GregorianCalendar cal = new GregorianCalendar();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
try {
cal.setTime(dateFormat.parse(curDate));
} catch (ParseException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
/* yyyy0101所在的周日有可能是上年的 */
cal.set(GregorianCalendar.DAY_OF_WEEK, GregorianCalendar.SUNDAY);
if (cal.get(GregorianCalendar.YEAR) == startYear)
weekdays[cal.get(GregorianCalendar.MONTH)]++;
while (true) {
System.out.println("sunday=" + dateFormat.format(cal.getTime()));
cal.add(GregorianCalendar.DATE, 7);
if (cal.get(GregorianCalendar.YEAR) != startYear) break;
weekdays[cal.get(GregorianCalendar.MONTH)]++;
}
System.out.println("over!");
}
...后面的部分都放到try里
这句我这里怎么出错阿
請你仔細去看看API吧。不懂就不要隨便說!
Month value is 0-based. e.g., 0 for January.
多谢楼上指教!