java实现万年历(附完整源码)

时间: 2023-11-09 11:07:44 浏览: 235
以下是Java实现万年历的完整源码: ```java import java.util.Scanner; public class CalendarDemo { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("请输入年份:"); int year = input.nextInt(); System.out.print("请输入月份:"); int month = input.nextInt(); // 计算该月的天数 int days = getDaysOfMonth(year, month); // 计算该月第一天是星期几 int firstDayOfWeek = getFirstDayOfWeek(year, month); // 输出日历表头 System.out.println("日\t一\t二\t三\t四\t五\t六"); // 输出该月的日期 int day = 1; for (int i = 0; i < 6; i++) { for (int j = 0; j < 7; j++) { if (i == 0 && j < firstDayOfWeek) { System.out.print("\t"); } else if (day > days) { System.out.print("\t"); } else { System.out.print(day + "\t"); day++; } } System.out.println(); } } // 计算指定年份指定月份的天数 public static int getDaysOfMonth(int year, int month) { int[] daysOfMonth = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; if (month == 2 && isLeapYear(year)) { return 29; } return daysOfMonth[month - 1]; } // 判断指定年份是否为闰年 public static boolean isLeapYear(int year) { return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0); } // 计算指定年份指定月份第一天是星期几 public static int getFirstDayOfWeek(int year, int month) { int days = 0; for (int i = 1900; i < year; i++) { days += isLeapYear(i) ? 366 : 365; } for (int i = 1; i < month; i++) { days += getDaysOfMonth(year, i); } days++; return days % 7; } } ``` 实现思路: 1. 要求用户输入年份和月份; 2. 根据输入的年份和月份计算该月的天数; 3. 根据输入的年份和月份计算该月第一天是星期几; 4. 输出日历表头; 5. 输出该月的日期。 实现细节: 1. 计算该月的天数时,需要判断闰年; 2. 判断闰年的公式为:能被4整除但不能被100整除,或者能被400整除; 3. 计算该月第一天是星期几时,需要先计算该年自1900年1月1日以来的天数,然后再加上该月之前的天数。

相关推荐

最新推荐

recommend-type

java万年历实验报告

该实验报告是关于java 万年历的实验报告对写java方面实验报告的有帮助 里面详细介绍了实验的步骤
recommend-type

JAVA实训报告(万年历)

java实训报告,其中包含代码(增加了“选项”,详见代码)以及整个实训流程,报告都已整理好!
recommend-type

基于C语言的万年历课程设计报告(内附程序,原理分析,心得体会等)

功能简介: 1、闰年判断,能够判断该年是闰年还是平年。2、日期查询,输入日期能够判断该日期是星期几及具体信息。3、月历查询,可显示指定日期所在月份的月历,包括打印指定个数的空格、打印分隔线。...
recommend-type

java整套课程设计万年历1

我们上课时老师让做的,和大家分享下,解决下大家的问题。此课程设计是全的,不是某些人发的那些只有源代码的!
recommend-type

如何用java里的Calendar类编写万年历

如何用java编写万年历:用calendar类里面的方法,不用判断年份是闰年还是平年,也不需要判断一个月是30天还是31天,Calendar里的方法自动实现了这一点。
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

spring添加xml配置文件

1. 创建一个新的Spring配置文件,例如"applicationContext.xml"。 2. 在文件头部添加XML命名空间和schema定义,如下所示: ``` <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。