程序是这样的:
import java.util.*;
public class CalendarTest
{
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);
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.println(" ");
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();
}
}我在Eclipse上试了下 发现结果是这样的:
Sun Mon Tue Wed Thu Fri Sat
1
2
3
4
5
6 7
8
9
10
11
12
13 14
15
16
17
18
19
20 21
22* 23
24
25
26
27 28
29
30 但是书上的结果,意思是应该就像通常的日历一样,按照星期下面排的日期 为什么这个结果是乱的,我应该没打错程序,都检查好几遍了,现在对JAVA还是一知半解,所以看了几遍程序还有点不明白,希望大家给看看程序,谢谢
import java.util.*;
public class CalendarTest
{
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);
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.println(" ");
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();
}
}我在Eclipse上试了下 发现结果是这样的:
Sun Mon Tue Wed Thu Fri Sat
1
2
3
4
5
6 7
8
9
10
11
12
13 14
15
16
17
18
19
20 21
22* 23
24
25
26
27 28
29
30 但是书上的结果,意思是应该就像通常的日历一样,按照星期下面排的日期 为什么这个结果是乱的,我应该没打错程序,都检查好几遍了,现在对JAVA还是一知半解,所以看了几遍程序还有点不明白,希望大家给看看程序,谢谢
System.out.print("*");
else
System.out.println(" ");==>>if (day == today)
System.out.print("*");
else
System.out.print(" ");
public class CalendarTest { 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);
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);
if(day<10)
System.out.print(" ");
System.out.print(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();
}
}这个例子写的不对,试试这个
import java.util.*;public class CalendarTest {
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);
int weekday = d.get(Calendar.DAY_OF_WEEK);
System.out.println("Sun Mon Tue Wed Thu Fri Sat"); int day = d.get(Calendar.DAY_OF_MONTH);
switch (weekday) {
case Calendar.MONDAY:
System.out.printf("%7d", day);
break;
case Calendar.TUESDAY:
System.out.printf("%11d", day);
break;
case Calendar.WEDNESDAY:
System.out.printf("%15d", day);
break;
case Calendar.THURSDAY:
System.out.printf("%19d", day);
break;
case Calendar.FRIDAY:
System.out.printf("%23d", day);
break;
case Calendar.SATURDAY:
System.out.printf("%27d", day);
break;
case Calendar.SUNDAY:
System.out.printf("%31d", day);
break;
}
if (day == today)
System.out.print("*");
else
System.out.print(" ");
d.add(Calendar.DAY_OF_MONTH, 1);
weekday = d.get(Calendar.DAY_OF_WEEK); while (d.get(Calendar.MONTH) == month) {
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);
}
}
}月份第一个日期要判断是一周中的第几天
// System.out.print(" "); 四个空格是什么意思?是不是有点固定了?