编写一个java程序,输出一份当前所在时区当前时间的一个月的日历(1号到28/29/30/31号,以及每天对应为星期几)。
日历的源代码如下:
import java.text.DateFormatSymbols;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class rili{
public static void main(String[] args){
GregorianCalendar d = new GregorianCalendar();//构造一个日期
int month=d.get(Calendar.MONTH);//当前月份
int today=d.get(Calendar.DAY_OF_MONTH);//获得今天是几号
String weekdays[] = new DateFormatSymbols().getShortWeekdays();//保存7个星期名 ,获取简短形式的星期字符串数组
for(int i=1; i<8; i++)
System.out.print(weekdays[i]+" "); //打印出七个星期的行
System.out.println();//换行
d.set(Calendar.DAY_OF_MONTH, 1); //设置为当月一号
int Firstday=d.get(Calendar.DAY_OF_WEEK);//获得1号是本周的第几天
int t = 1;
while(weekdays[t] != weekdays[Firstday])//判断当月一号为星期几从哪里开始打印
{
System.out.print(" ");
++t;
}
while(d.get(Calendar.MONTH) ==month)
{
int day = d.get(Calendar.DAY_OF_MONTH);
System.out.printf("%3s", day);//格式化字符串
if(day == today) //判断是否是今天的日期
System.out.print("* "); //在今天的日期上做标记“*”
else
System.out.print(" "); //不是就打印空格
if(weekdays[d.get(Calendar.DAY_OF_WEEK)] == weekdays[7]) //判断是否需要换行打印
System.out.println(); //换行
d.add(Calendar.DAY_OF_MONTH, 1);//天数加一
}
}
}
运行结果:
数字后面有” * “表示为当天的日期。