如何用Java写一个日历
涉及知识点:本地日期类 LocalDate
大部分代码注释都写上了,适合入门java新手
import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.TextStyle; import java.util.Locale; import java.util.Scanner; public class PracticeTime { public static void main(String[] args) { Scanner input = new Scanner((System.in)); System.out.println("请输入一个年份+月份"); int year = input.nextInt(); int month = input.nextInt(); //创建对象,得到本月第一天 LocalDate date = LocalDate.of(year,month, 1); //得到本月名称,1是一月,5是五月... String monthname = date.getMonth().getDisplayName( TextStyle.FULL,Locale.getDefault()); //当前月的天数 int dayOfMonth = date.lengthOfMonth(); //日历的表头 System.out.println(year+"年 "+monthname ); System.out.println("--------------------------------------------"); System.out.printf("%10s%10s%10s%10s%10s%10s%10s%n","一","二","三","四","五","六","日"); //返回本月1日是周几,返回值是1则为星期一,返回值为7则为周日 int dayOfWeek = date.getDayOfWeek().getValue(); //输出空格部分 for (int i = 2; i <= dayOfWeek; i++) System.out.printf(" %4s"," "); //输出数字部分 for (int i = 1; i <= dayOfMonth ; i++) { System.out.printf(" %4d",i); //满一周换行 if ((dayOfWeek + i-1)%7==0) { System.out.println(); } } } }
运行结果:
请输入一个年份+月份
2022 5
2022年 五月
--------------------------------------------
一 二 三 四 五 六 日
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31