利用LocalDate输入年月日找出当月日历
直接上代码
package gentleman.Controller; import java.time.LocalDate; import java.util.Scanner; public class Calendar { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入要查询的日期(年-月-日用-分隔开)"); String input = sc.nextLine(); String[] str = input.split("-"); int year = Integer.parseInt(str[0]); int month = Integer.parseInt(str[1]); int day = Integer.parseInt(str[2]); LocalDate date = LocalDate.of(year, month, day); //将输入的数值创建一个LocalDate对象 String time = year + "年" + month + "月的日历"; date = date.minusDays(day - 1); //不论输入的是几号,总是从第一天算起 int value = date.getDayOfWeek().getValue(); //周一到周日对应1-7 System.out.println(" " + time); System.out.println(); System.out.println(" 周一 周二 周三 周四 周五 周六 周日"); //这里空格的排序根据个人来定,我这看起来这么排顺序能对上 for (int i = 1; i < value; i++) System.out.print(" "); while (date.getMonth().getValue() == month) { //如果这个月遍历完就停止 if (date.getDayOfMonth() <= 10) { //排版需要 System.out.print(" " + date.getDayOfMonth() + " "); } else { System.out.print(" " + date.getDayOfMonth()); } if (date.getDayOfMonth() == day) { //输入日期标注*重点 System.out.print("*"); } else { System.out.print(" "); } date = date.plusDays(1); //每次打印完就向后一天,无需管一个月是28天还是30,31天 if (date.getDayOfWeek().getValue() == 1) { System.out.println(); } } } }
原文地址:https://www.cnblogs.com/xiaowangtongxue/p/10677728.html
时间: 2024-10-09 23:43:30