Java实现简单的万年历

网友投稿 272 2022-10-28


Java实现简单的万年历

本文实例为大家分享了java实现简单万年历的具体代码,供大家参考,具体内容如下

1 要求

1、输入年份;

2、输入月份;

3、输出某年某月的日历。

2 思路

1、实现从控制台接收年和月,判断是否是闰年(判断是否是闰年:能被4整除但不能被100整除;或者能被400整除);

2、计算输入月份的天数;

3、计算该月第一天是星期几;

3.1 计算输入年份距离1900年1月1日的天数;

3.2 计算输入月份之前的天数(从当年年初开始);

3.3 将以上两组数据进行求和;

3.4 已知该月之前的天数,计算输入月份的第一天是星期几(从1900年1月1日(星期一)开始推算: 星期几 = 1 + 天数差 % 7 )。

4、按格式输出该月日历 。

3 源代码

import java.util.Scanner;

public class index {

//每个月的天数

public static int monthday(int month, int year) {

if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {

int[] day = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

return day[month];

} else {

int[] day = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

return day[month];

}

}

//月份总天数

public static int monthdays(int month, int year) {

int totaldays = 0;

for (int i = 1; i < month; i++) {

totaldays = totaldays + monthday(i, year);

}

return totaldays;

}

//距离1900年的年份总天数

public static int yeardays(int year){

int yeardays = 0;

for (int i = 1900;i

if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0) {

yeardays = yeardays+366;

} else {

yeardays = yeardays+365;

}

}

System.out.println(year+"年距离1900年的总天数"+yeardays);

return yeardays;

}

//输出日历

public static void printCalendar(int month,int year){

int totaldays = 0;

if (year > 0) {

if (month > 0 && month < 13) {

//距离1900年1月1日总天数

totaldays = monthdays(month,year)+yeardays(year);

System.out.println(year+"年"+month+"月1日距离1900年的总天数:"+totaldays);

System.out.println("\n**********"+year+"年"+month+"月的日历为**********");

System.out.println("一\t二\t三\t四\t五\t六\t日\t");

int week = 1+totaldays%7;

//根据1日为周几输出空格

for(int i=1;i

System.out.print(" \t");

}

//输入具体日期

for(int i=1;i<=monthday(month,year);i++){

System.out.print(i+"\t");

if(week==7){

week = 1;//重置为星期一

System.out.println();

}else{

week++;

}

}

} else {

System.out.println("输入的月份不合法!");

}

} else {

System.out.println("输入的年份不合法!");

}

}

//主函数

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

System.out.println("***********************欢迎使用万年历**************************");

System.out.println("*********请选择你需要进行的操作(输入进行操作之前的数字)**********");

System.out.println("********************1.查询某年某月的日历************************");

System.out.println("********************2.结束操作*********************************");

System.out.print("\n请选择你需要进行的操作:");

int a = scanner.nextInt();

for (int i=0;i>=0;i++) {

switch (a) {

case 1:

System.out.print("请选择年份:");

int year = scanner.nextInt();

System.out.print("请选择月份:");

int month = scanner.nextInt();

printCalendar(month, year);

System.out.print("\n请选择你需要进行的操作:");

a = scanner.nextInt();

break;

case 2:

System.out.println("退出程序成功!");

return;

}

}

}

}

4 结果截图

注意:我的周日是在最后一栏

if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0) {

yeardays = yeardays+366;

} else {

yeardays = yeardays+365;

}

}

System.out.println(year+"年距离1900年的总天数"+yeardays);

return yeardays;

}

//输出日历

public static void printCalendar(int month,int year){

int totaldays = 0;

if (year > 0) {

if (month > 0 && month < 13) {

//距离1900年1月1日总天数

totaldays = monthdays(month,year)+yeardays(year);

System.out.println(year+"年"+month+"月1日距离1900年的总天数:"+totaldays);

System.out.println("\n**********"+year+"年"+month+"月的日历为**********");

System.out.println("一\t二\t三\t四\t五\t六\t日\t");

int week = 1+totaldays%7;

//根据1日为周几输出空格

for(int i=1;i

System.out.print(" \t");

}

//输入具体日期

for(int i=1;i<=monthday(month,year);i++){

System.out.print(i+"\t");

if(week==7){

week = 1;//重置为星期一

System.out.println();

}else{

week++;

}

}

} else {

System.out.println("输入的月份不合法!");

}

} else {

System.out.println("输入的年份不合法!");

}

}

//主函数

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

System.out.println("***********************欢迎使用万年历**************************");

System.out.println("*********请选择你需要进行的操作(输入进行操作之前的数字)**********");

System.out.println("********************1.查询某年某月的日历************************");

System.out.println("********************2.结束操作*********************************");

System.out.print("\n请选择你需要进行的操作:");

int a = scanner.nextInt();

for (int i=0;i>=0;i++) {

switch (a) {

case 1:

System.out.print("请选择年份:");

int year = scanner.nextInt();

System.out.print("请选择月份:");

int month = scanner.nextInt();

printCalendar(month, year);

System.out.print("\n请选择你需要进行的操作:");

a = scanner.nextInt();

break;

case 2:

System.out.println("退出程序成功!");

return;

}

}

}

}

4 结果截图

注意:我的周日是在最后一栏

System.out.print(" \t");

}

//输入具体日期

for(int i=1;i<=monthday(month,year);i++){

System.out.print(i+"\t");

if(week==7){

week = 1;//重置为星期一

System.out.println();

}else{

week++;

}

}

} else {

System.out.println("输入的月份不合法!");

}

} else {

System.out.println("输入的年份不合法!");

}

}

//主函数

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

System.out.println("***********************欢迎使用万年历**************************");

System.out.println("*********请选择你需要进行的操作(输入进行操作之前的数字)**********");

System.out.println("********************1.查询某年某月的日历************************");

System.out.println("********************2.结束操作*********************************");

System.out.print("\n请选择你需要进行的操作:");

int a = scanner.nextInt();

for (int i=0;i>=0;i++) {

switch (a) {

case 1:

System.out.print("请选择年份:");

int year = scanner.nextInt();

System.out.print("请选择月份:");

int month = scanner.nextInt();

printCalendar(month, year);

System.out.print("\n请选择你需要进行的操作:");

a = scanner.nextInt();

break;

case 2:

System.out.println("退出程序成功!");

return;

}

}

}

}

4 结果截图

注意:我的周日是在最后一栏


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Cacti Error:'145“解决
下一篇:搭建YUM库及YUM工具的使用
相关文章

 发表评论

暂时没有评论,来抢沙发吧~