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)这句删除了程序就成死循环了,并且打印的结果也是乱的。 请教高手这个如何解决?
你自己想想,你是将日期逐渐加1,由于Calendar会自动控制年月日的,因此只要你改变了日期,Calendar就会自动将月和年进行处理,自然就到月尾已经为你加1了 你再 d(Calendar.MONTH,1);就直接到下下个月了,现实结果自然就是只有单月了 将 d(Calendar.MONTH,1);去掉就行了
答:说个大体思路吧,这几个题都是跟Calendar有关,可以参考相关API。 Calendar cal = tInstance(); t(年,月,日); //第一...详情>>
答:google "java 缓冲池"详情>>
答:百度里搜张孝祥 非常好的视频教程详情>>