目录
前言:
此程序适合java小白初学者以及勤奋上进的大学生。。主要技术为字符串与日期的强转,以及日期的各种api,采用的jdk 8的新特性来获得日期
展示:
什么年份都查得到,闰年也不例外。
api:
LocalDate now = LocalDate.now();
获取当前的日期时间 形式为 yy mm dd
最主要的就是
int week = now.withDayOfMonth(1).getDayOfWeek().getValue();
获取本月的第一天是星期几,连续调用了三个api
当我们知道第一天是星期几的时候就可以,通过循环在第一行来空出相应的空格
now.lengthOfMonth();//这个月的长度
知道本月的长度,那么就可以确定需要循环的次数,28天就循环28次,31天就循环31次
那么让我们直接来学习代码吧!
代码部分:
public class RiLi {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("请输入一个日期");
String i = scanner.next();
// LocalDate now = LocalDate.now();
LocalDate now = LocalDate.parse(i);
int week = now.withDayOfMonth(1).getDayOfWeek().getValue();
System.out.println(now.withDayOfMonth(1).getDayOfWeek().getValue());
now.lengthOfMonth();//这个月的长度
//打印星期
System.out.println("一\t二\t三\t四\t五\t六\t天");
//打印空格
for (int x = 1; x < week; x++) {
System.out.print("\t");
}
//打印日期
for (int x = 1; x <= now.lengthOfMonth(); x++) {
System.out.print(now.withDayOfMonth(x).getDayOfMonth() + "\t");
if ((week + x - 1) % 7 == 0) {
System.out.println();
}
}
}
}
}