/* * 因为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(); } } } }
日历小程序
最新推荐文章于 2024-08-09 07:59:54 发布