JAVA实现万年历

发布时间:2025-12-09 16:56:47 浏览次数:4

实现步骤:

  • 输入年份、月份和日期  year  month date
  • 计算从1900年1月1号到那该年该月相差多少天(days)
  • 分两个部分计算,每个部分都要判断是否为闰年(闰年多一天)(四年一闰;百年不闰, 四百年再闰)
  • 计算该年该月有多少天(monthday)
  • 计算该年该月第一天是星期几
  • 通过上一步得到所输入的的日期是星期几
  • 格式化的输出该天是星期几。
  • import java.util.Scanner;public class PerpetualCalendar {public static void main(String[] args) {// 一.输入年份和月份 year monthScanner sc = new Scanner(System.in);System.out.println("请输入年份:");int year = sc.nextInt();System.out.println("请输入月份:");int month = sc.nextInt();System.out.println("请输入多少号:");int date = sc.nextInt();// 二.计算当前输入的年份,月份距离1900.1.1有多少天int days = 0;//年for (int i = 1900; i < year; i++) {if ((i % 100 != 0 && i % 400 == 0) || (i % 4 == 0)) {days += 366;//闰年} else {days += 365;//平年}}//月for (int i = 1; i < month; i++) {switch (i) {case 1:case 3:case 5:case 7:case 8:case 10:case 12:days += 31;//大月31天break;case 2:if ((year % 100 != 0 && year % 400 == 0) || (year % 4 == 0)) {days += 29;//闰年2月} else {days += 28;//平年2月}break;default:days += 30;//小月30天}}//记住了当前月份,就是你要打印出那个月的日历的天数,保存到monthday变量了int monthday = 0;switch (month) {case 1:case 3:case 5:case 7:case 8:case 10:case 12:monthday = 31;//大月31天break;case 2:if ((year % 100 != 0 && year % 400 == 0) || (year % 4 == 0)) {monthday = 29;//闰年2月} else {monthday = 28;//平年2月}break;default:monthday = 30;//小月30天}// 三.计算你当前输入的年份和月份的第一天是星期几int firstOfMonth;int todayDate;firstOfMonth = (days) % 7;todayDate = (firstOfMonth + date - 1) % 7 ;if (firstOfMonth == 0){System.out.println(year + "年" + month + "月的第一天是星期天");}else {System.out.println(year + "年" + month + "月的第一天是星期" + firstOfMonth);}if (todayDate == 0){System.out.println(year + "年" + month + "月" + date + "号是星期日");}else {System.out.println(year + "年" + month + "月" + date + "号是星期" + todayDate);}// 四.输出日历System.out.println("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");for (int i = 0; i < firstOfMonth; i++) {System.out.print("\t\t");//空格}for (int i = 1; i <= monthday; i++) {if (i == date){System.out.print("·" + i + "·" + "\t\t" );}else {System.out.print(i + "\t\t");}if ((firstOfMonth + i) % 7 == 0) { //输出换行System.out.println();}}}}
    需要做网站?需要网络推广?欢迎咨询客户经理 13272073477