import java.util.Calendar; import java.util.GregorianCalendar; /** * 输出自己电脑上的日期 * @author xcx * @time 2017年7月11日下午6:13:21 */ public class CalendarTest { // 每周的天数 private static final int numbersOfWeek = 7; public static void main(String[] args) { // 初始化月份 int[] months = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; String[] weeks = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" }; for (String s : weeks) { System.out.print(s + " "); } System.out.println(); // 创建对象,得到信息 GregorianCalendar d = new GregorianCalendar(); // 得到这是哪一年 int year = d.get(Calendar.YEAR); // 判断是否为闰年,如果flag为true则是闰年 boolean flag = false; if ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0)) { flag = true; } // 得到这一天是这个月的第几天 int dayOfMonth = d.get(Calendar.DAY_OF_MONTH); // 得到这一天是周几 int dayOfWeek = d.get(Calendar.DAY_OF_WEEK); // 得到这是第几个月 int month = d.get(Calendar.MONTH) + 1; // 推理这个月的第一天是周几 int temp = dayOfMonth; while (temp - numbersOfWeek > 0) { temp -= numbersOfWeek; } temp = dayOfWeek - temp; int firstOfMonth = (temp + numbersOfWeek) % numbersOfWeek; for (int i = 0; i < firstOfMonth; i++) { System.out.print(" "); } // 打印输出结果 printMonth(month, firstOfMonth, flag, dayOfMonth); } public static void printMonth(int month, int firstOfMonth, boolean flag, int dayOfMonth) { int temp = firstOfMonth; if (month == 2) {// 如果是二月 if (flag == true) {// 如果是闰年 for (int i = 1; i <= 29; i++, temp++) { if (i == dayOfMonth) { System.out.print(i + "* "); } else { System.out.print(i + " "); } if (temp % 7 == 6) {// 判断是否换行 System.out.println(); } } } else {// 如果不是闰年 for (int i = 1; i <= 28; i++, temp++) { if (i == dayOfMonth) { System.out.print(i + "* "); } else { System.out.print(i + " "); } if (temp % 7 == 6) {// 判断是否换行 System.out.println(); } } } } else {// 如果不是二月 if (String.valueOf(month).matches("(1|3|5|7|8|10|12)")) {// 判断这个月是否为31天 for (int i = 1; i <= 31; i++, temp++) { if (i == dayOfMonth) { System.out.print(i + "* "); } else { System.out.print(i + " "); } if (temp % 7 == 6) {// 判断是否换行 System.out.println(); } } } else { for (int i = 1; i <= 30; i++, temp++) { if (i == dayOfMonth) { System.out.print(i + "* "); } else { System.out.print(i + " "); } if (temp % 7 == 6) {// 判断是否换行 System.out.println(); } } } } } }
显示结果: