Java例子:万年历的输出

来源:互联网 发布:数据库管理系统哪个好 编辑:程序博客网 时间:2024/05/14 16:15
/** *  */package 练习0927;import java.time.DayOfWeek;import java.time.LocalDate;import java.time.temporal.TemporalAdjusters;import java.util.Scanner;public class 日期类的练习 {public static void main(String[] args) throws Exception {printCalendar();}private static void printCalendar() {int year;int month;int monthDay;Scanner scanner = new Scanner(System.in);System.out.println("请输入年:");year = scanner.nextInt();System.out.println("请输入月:");month = scanner.nextInt();LocalDate date = LocalDate.of(year, month, 1);DayOfWeek lo = date.getDayOfWeek();// 星期几LocalDate lastDayOfThisMonth = date.with(TemporalAdjusters.lastDayOfMonth());monthDay = lastDayOfThisMonth.getDayOfMonth();// 多少天System.out.println("日\t一\t二\t三\t四\t五\t六");int spaceNum = 0;// 统计第一行应该打印的空格数switch (lo) {case SUNDAY:spaceNum = 0;break;case MONDAY:spaceNum = 1;break;case TUESDAY:spaceNum = 2;break;case WEDNESDAY:spaceNum = 3;break;case THURSDAY:spaceNum = 4;break;case FRIDAY:spaceNum = 5;break;case SATURDAY:spaceNum = 6;break;default:break;}for (int i = 0; i < spaceNum; i++) {System.out.print('\t');}// 打印int oneLineNumCount = spaceNum + 1;for (int firstLineNum = 1; firstLineNum <= monthDay; firstLineNum++) {if (oneLineNumCount == 7) {System.out.print(firstLineNum + "\n");oneLineNumCount = 1;} else {System.out.print(firstLineNum + "\t");oneLineNumCount++;}}}}

 
原创粉丝点击