用java进行简单的万年历编写

本文介绍了一个使用Java编写的万年历程序,该程序能够根据用户输入的年份和月份显示对应的日历,并判断是否为闰年。通过计算天数和星期几来正确展示每月的日期布局。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 import java.util.Scanner;
 public class PrintCalendarDemo1 
{
	public static void main(String[] args) 
	{
		int year;//保存输入的年
		int month;//保存输入的月
		boolean isRn;//闰年保存true,否则为false
		int days=0;//保存月份的天数
		int totalDays=0;//保存总的天数差
		System.out.println("***************使用万年历***************");
		Scanner input= new Scanner(System.in);
		System.out.println("请输入年");
		year = input.nextInt();
		System.out.println("请输入月");
		month = input.nextInt();

		if((year%400==0) || (year%4==0&& year%100!=0)){
			isRn = true;
		}else{
				isRn= false;
		}
		if(isRn){
			System.out.println(year+"年" + "是闰年");
		}else
		{
			System.out.println(year+"年" + "不是闰年");
		}
		//计算年的总天数
		for(int i=1900;i<year;i++){
			if(i%400==0||(i%4==0&&i%100!=0)){
				totalDays+=366;
			}else{
				totalDays+=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;
				break;
			case 2:
				if(isRn){
					days=29;
				}else{
					days=28;
				}
				break;
			case 4:
			case 6:
			case 9:
			case 11:
				days=30;
				break;
			default:
				System.out.println("输入的月份有误!");
			}
			//输入月的天数保存到days变量,但不累加
			if(i!=month){
				totalDays+=days;
			}

		}
		//求出星期几,其实就是前面\t的个数
		int beforDays;
		beforDays=1+totalDays%7;
		if(beforDays==7){
			beforDays=0;
		}
		System.out.println("星期天\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六\t");
		for(int i=0;i<beforDays;i++){
			System.out.print("\t");
		}
		for(int i=1;i<=days;i++){
			System.out.print(i+"\t");
			if((i+beforDays)%7==0){
				System.out.println();
			}
		}
	
	System.out.println();	
	System.out.println(year+"年"+month+"月"+"有"+days+"天");

	}
}

 

转载于:https://www.cnblogs.com/lllzy/p/4956847.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值