过两天准备去面试一把,看了下《java核心技术》,这是自己实现的第4章《对象与类》中的一个例子,
package calendar.test;
import java.util.Calendar;
/**
*
* @author Jenny 1.打印第一行 3.设置周日为星期的第一天 3.获取所在月的第一天为周几 4,获取所在月有几天 5.开始循环
* 当循环到今天时打印*
*/
public class PrintCal {
public static void main(String[] arg) {
System.out.print("周日\t周一\t周二\t周三\t周四\t周五\t周六");
System.out.println();
Calendar now = Calendar.getInstance();
now.setFirstDayOfWeek(Calendar.SUNDAY);
int day_of_week = now.get(Calendar.DAY_OF_WEEK);
int i = 1;
for (; i < day_of_week; i++) {
System.out.print("\t");
}
int dates = 1;
System.out.printf("%d\t", dates);
i = (i + 1) % 7;
if (i == 0)
System.out.println();
dates++;
int days_in_month = now.getActualMaximum(Calendar.DATE);// 一个月有几天
int date_now = now.get(Calendar.DAY_OF_MONTH);
for (; dates < days_in_month + 1; i = (i + 1) % 7, dates++) {
System.out.printf("%d", dates);
// 判断是不是今天
if (date_now == dates)
System.out.printf("*");
System.out.printf("\t");
if (i == 0)
System.out.println();
}
}
}