爱问知识人 爱问教育 医院库

java语言中打印日历问题。

首页

java语言中打印日历问题。

import java.util.Calendar;
public class Demo1 {
  public static void main(String[] args) {
Calendar cal =  tInstance();
 t(Calendar.MONTH, Calendar.JANUARY);
int year =  t(Calendar.YEAR);
while(true){
int month =  t(Calendar.MONTH);
int month1 = month+1;
 intln(year+"年"+month1+"月的日历:");
 intln("日     一     二    三     四     五    六");
 t(Calendar.DATE, 1);
int firstday =  t(Calendar.DAY_OF_MONTH);
// intln(lastday);
while(true){
if( t(Calendar.DAY_OF_MONTH)==firstday){
for(int i=1;i< t(Calendar.DAY_OF_WEEK);i++)
 int("   ");}//每个月的第一天根据它是一周的第几天补适应的空格
String day =  String( t(Calendar.DAY_OF_MONTH));
if( t(Calendar.DAY_OF_MONTH)<10){
day = "0"+day ;//如果日期数字小于10,前面补0
}
 int(day+" ");
if( t(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY)
 intln();//每到星期六就换行
 d(Calendar.DAY_OF_MONTH, 1);//日期自增
if( t(Calendar.MONTH)>month) //如果天日期增加到下个月一号就退出本层循环
break;
}
 intln();
 d(Calendar.MONTH,1);
if( t(Calendar.YEAR)>year) break;
}
}
}
现在只能正确打印出1,3,5,7,8,9,11月份的日历。我知道当内层while执行完时系统的月份会加1,而外层while语句后面再执行 d(Calendar.MONTH,1)系统月份就多加了1个月。问题就在这里,我如果把 d(Calendar.MONTH,1)这句删除了程序就成死循环了,并且打印的结果也是乱的。
请教高手这个如何解决?

提交回答

全部答案

    2013-04-26 10:45:03
  • 你自己想想,你是将日期逐渐加1,由于Calendar会自动控制年月日的,因此只要你改变了日期,Calendar就会自动将月和年进行处理,自然就到月尾已经为你加1了
    你再 d(Calendar.MONTH,1);就直接到下下个月了,现实结果自然就是只有单月了
    将 d(Calendar.MONTH,1);去掉就行了

    贝***

    2013-04-26 10:45:03

类似问题

换一换

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 178-197
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):