Calendar.java代码:
package com.qf.day6_homework;
import java.util.Scanner;
public class WanNianLI {
@SuppressWarnings("resource")
public static void main(String[] args) {
// 输入一个年月,打印当月的日历
Scanner input = new Scanner(System.in);
// 输入年月,接收年月
System.out.println("请输入年:");
int year = input.nextInt();
System.out.println("请输入月:");
int month = input.nextInt();
// 计算输入月份的一号是星期几?--怎么算?
// 计算思路:1900-1-1 算你输入的年月到1900-1-1一共有多少天?
// 1900 2
// 先算年头,
int days = 0;// 这个变量用来存储一共多少天
// 1970-1-1
for (int i = 1900; i < year; i++) {
days += isLeapYear(i)?366:365;
}
// 2021-11
// 1900-1-1---->2020-12-31
// 再算月
for (int i = 1; i < month; i++) {
if (i == 2) {// 如果是2月
days += isLeapYear(year)?29:28;
} else if (i == 4 || i == 6 || i == 9 || i == 11) {// 小月
days += 30;
} else {
days += 31;
}
}
// 1900-1-1--》2021-10-31
// 算星期几
int week = days % 7 + 1;
System.out.println("本月第一天是星期" + week);
// 这个年和月对应的是多少天--换行
int dayOfMonth = 0;
if (month == 2) {// 如果是2月
dayOfMonth = isLeapYear(year)?29:28;
} else if (month == 4 || month == 6 || month == 9 || month == 11) {// 小月
dayOfMonth = 30;
} else {
dayOfMonth = 31;
}
// 输出
System.out.println("一\t二\t三\t四\t五\t六\t日");
// 空格
for (int i = 1; i < week; i++) {
System.out.print("\t");
}
// 日期
for (int i = 1; i <= dayOfMonth; i++) {
System.out.print(i + "\t");
if ((week - 1 + i) % 7 == 0) {// 空格+日期==7的倍数换行
System.out.println();// 换行
}
}
}
//定义判断闰年的方法
public static boolean isLeapYear(int year) {
if(year%4==0&&year%100!=0||year%400==0) {
return true;
}else {
return false;
}
}
}//类
运行效果:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/94166.html