system.out.printf("%3d",day)中的3是什么意思 system.out.printf("%3d",day)中的3是什么意思?请讲解一下printf的用法 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 具体prinf的用法我也不清楚,C里面的东西。不过3的意思我明白,意思是输出的值占3个位置。例如:123,_23,__3(“_”表示占一个位置) 谢谢,这条语句是下面程序中的一条,其中还有一条语句不明白,请指教 public static void main(String [] args) { GregorianCalendar d=new GregorianCalendar(); int today=d.get(Calendar.DAY_OF_MONTH); int month=d.get(Calendar.MONTH); d.set(Calendar.DAY_OF_MONTH,1);//这条语句是把当前的日期设置为这个月的第一天,我不明白,如果说今天是19号,那1-18号怎么算出来?因为下面有一条语句是使日期向后加的. int weekDay=d.get(Calendar.DAY_OF_WEEK); System.out.println("Sun Mon Tue Wed Thu Fri Sat"); for(int i=Calendar.SUNDAY;i<weekDay;i++) System.out.print(" "); do { int day=d.get(Calendar.DAY_OF_MONTH); System.out.printf("%3d",day); if(day==today) System.out.print("*"); else System.out.print(" " ); if(weekDay==Calendar.SATURDAY) System.out.println(); d.add(Calendar.DAY_OF_MONTH,1);//这条语句就是使日期向后加 weekDay=d.get(Calendar.DAY_OF_WEEK); }while(d.get(Calendar.MONTH)==month); if(weekDay!=Calendar.SUNDAY) System.out.println(); } for为了查看当前日期是星期几,条件是int i=Calendar.SUNDAY;i<weekDay;星期变化日期就自加1,1-18就是这样算出来的. 第一个问题:%3d,中的 3 是整型数据的占位宽度。也就是说不足 3 位的数字前用空格补足三位,也就是右对齐;如果是 -3,则在后面添加空格补足三位,左对齐。如果超过 3 位的话,则是实际宽度来输出。这些是 JDK 1.5 的新特性之一,方便对控制台输出进行格式化,具体的参数可以参看 java.util.Formatter 的 API。第二个问题:d.set(Calendar.DAY_OF_MONTH,1); 这样设置并不是设置当前日期为这个月的第一天,而是将日期设为当前月的 1 号。fantasybob 的回答可能有点误区,for 并不同查看当前日期是星期几,int weekDay=d.get(Calendar.DAY_OF_WEEK); 才是获得当前月的 1 号是星期几,而 for 是为了在前面输出空格的,比如 2007-08-01 是星期三,那在日历中它前面的星期日至星期二就是空档,for 就是用来产生这些空档的。后面的 do...while 循环是为了输出当前月的日历使用的,d.add(Calendar.DAY_OF_MONTH,1); 是为了增加一天。当日期已到 2007-08-31 时,再加一天的话,日期就变成了 2007-09-01 此时循环就结束了。 谢谢各位,还是有点不明白在:d.set(Calendar.DAY_OF_MONTH,1)这条语句上,为什么要把今天(比如是19号)设置为这个月的1号,而后面d.add(Calendar.DAY_OF_MONTH,1)这条语句是把日期向后加,(一直加到31号),那今天以前的日期怎么体现出来的呢? 你问这个问题的意思我明白了。看着代码给你解释吧:// 这一行代码生成的是当天的日期,比如说是今天“2007-07-19”GregorianCalendar d=new GregorianCalendar();// 下面两行是取得今天的日和月,也就是 today = 19,month = 6(也就是 7 月份,Sun 公司搞的鬼,月份从 0 开始的)int today=d.get(Calendar.DAY_OF_MONTH);int month=d.get(Calendar.MONTH);// 但是做日历要从 1 号开始啊,所以我们要把这个日期设为“2007-07-01”,也就是设置成为 1 号,并不是把 19 号设为 7 月份的第一天。d.set(Calendar.DAY_OF_MONTH,1);至此为止,现在 d 的日期就成了“2007-07-01”,然后再通过循环每次天数加 1,就可以生成 1~31 的日历了,明白了吗 o(·_·)o bao110908(讨厌蟑螂) 说的挺详细的d.set(Calendar.DAY_OF_MONTH,1);do{ 这里面从1号开始...}while对否,讨厌小强的? Ststem.out.printf(); ?????有这么写的? 线程同步的问题,急!!! 谁有物流供应链管理系统的Java源代码和数据库脚本或文件?谢谢! 总是遇到稀奇古怪的报错啊!大家都是怎么判断 大家帮忙! 怎么错了阿!!!!!!!!!! java做一个简单的菜单管理功能 jradiobutton焦点问题? 关于线程的一个问题:) 现在最新的JAVA编译器是什么? Java学习路线是什么? 想要应聘JAVA程序员需要懂哪些东西? Java中怎样生成指定位数的、随机大素数?
例如:123,_23,__3
(“_”表示占一个位置)
public static void main(String [] args)
{
GregorianCalendar d=new GregorianCalendar();
int today=d.get(Calendar.DAY_OF_MONTH);
int month=d.get(Calendar.MONTH);
d.set(Calendar.DAY_OF_MONTH,1);//这条语句是把当前的日期设置为这个月的第一天,我不明白,如果说今天是19号,那1-18号怎么算出来?因为下面有一条语句是使日期向后加的.
int weekDay=d.get(Calendar.DAY_OF_WEEK);
System.out.println("Sun Mon Tue Wed Thu Fri Sat");
for(int i=Calendar.SUNDAY;i<weekDay;i++)
System.out.print(" ");
do
{
int day=d.get(Calendar.DAY_OF_MONTH);
System.out.printf("%3d",day);
if(day==today)
System.out.print("*");
else
System.out.print(" " );
if(weekDay==Calendar.SATURDAY)
System.out.println();
d.add(Calendar.DAY_OF_MONTH,1);//这条语句就是使日期向后加
weekDay=d.get(Calendar.DAY_OF_WEEK);
}while(d.get(Calendar.MONTH)==month);
if(weekDay!=Calendar.SUNDAY)
System.out.println();
}
第二个问题:d.set(Calendar.DAY_OF_MONTH,1); 这样设置并不是设置当前日期为这个月的第一天,而是将日期设为当前月的 1 号。fantasybob 的回答可能有点误区,for 并不同查看当前日期是星期几,int weekDay=d.get(Calendar.DAY_OF_WEEK); 才是获得当前月的 1 号是星期几,而 for 是为了在前面输出空格的,比如 2007-08-01 是星期三,那在日历中它前面的星期日至星期二就是空档,for 就是用来产生这些空档的。后面的 do...while 循环是为了输出当前月的日历使用的,d.add(Calendar.DAY_OF_MONTH,1); 是为了增加一天。当日期已到 2007-08-31 时,再加一天的话,日期就变成了 2007-09-01 此时循环就结束了。
GregorianCalendar d=new GregorianCalendar();// 下面两行是取得今天的日和月,也就是 today = 19,month = 6(也就是 7 月份,Sun 公司搞的鬼,月份从 0 开始的)
int today=d.get(Calendar.DAY_OF_MONTH);
int month=d.get(Calendar.MONTH);// 但是做日历要从 1 号开始啊,所以我们要把这个日期设为“2007-07-01”,也就是设置成为 1 号,并不是把 19 号设为 7 月份的第一天。
d.set(Calendar.DAY_OF_MONTH,1);至此为止,现在 d 的日期就成了“2007-07-01”,然后再通过循环每次天数加 1,就可以生成 1~31 的日历了,明白了吗 o(·_·)o
d.set(Calendar.DAY_OF_MONTH,1);do{
这里面从1号开始...
}
while对否,讨厌小强的?