/*
* 因为Date类的大多数方法都已经废除了,所以Java提供了一个罗马日历类来取代Date类
*
*
**/
import java.util.*;
public class CalendarTest {
public static void main(String[] args) {
GregorianCalendar d = new GregorianCalendar();
// 把今天日期保存在today变量中
int today = d.get(Calendar.DAY_OF_MONTH);
int month = d.get(Calendar.MONTH);
// 把日期设置为1号, 因为只设置了日期, 所以年和月还是当前的年和月
d.set(Calendar.DAY_OF_MONTH, 1);
// 返回本月一号的星期数
int weekday = d.get(Calendar.DAY_OF_WEEK);
// 每个汉字两个字符位,每两个汉字之间两个空格
System.out.println("日 一 二 三 四 五 六");
// 如果一号是星期日, 该循环一次不走, 星期一就走一次,一次四个空格
for(int i = Calendar.SUNDAY; i < weekday; i++) {
// 四个空格
System.out.print(" ");
}
do {
// 返回当前日期, 保存到day变量中
int day = d.get(Calendar.DAY_OF_MONTH);
// 如果日期小于10,那么只有一个字符位,我们用一个空格来占一个字符位
if(day < 10) {
System.out.print(" ");
}
System.out.print(day);
// 因为today保存的是今天的日期, 在今天后面加"* ", 其它日期加" "。
if(day == today) {
System.out.print("* ");
} else {
System.out.print(" ");
}
// 输出完以上信息后, 查看当前日期是否是星期六,如果是则换行
if(weekday == Calendar.SATURDAY) {
System.out.println();
}
// add方法和set不同, add方法是在当前日期的基础上加
// 设置当前日期为下一天
d.add(Calendar.DAY_OF_MONTH, 1);
// 重新把当前日期的星期数保存到weekday变量中
weekday = d.get(Calendar.DAY_OF_WEEK);
// 因为add方法的不断执行会使时间走到下一个月,这样就会跳出循环
} while(d.get(Calendar.MONTH) == month);
/* 如果下月的一号不是星期日就换行
*(本月的最后一天不是星期六就换行, 因为是星期六的话会换行, 就不需再换行了)
*/
if(weekday != Calendar.SUNDAY) {
System.out.println();
}
}
}
}
日历小程序
最新推荐文章于 2021-03-11 17:18:44 发布