输入一个年份和月份就能看到这个月的日历

输入一个年份和月份就能看到这个月的日历

import java.util.Scanner;
class Calender02 {
	public static void main(String[] args) {
		Scanner input=new Scanner(System.in);
		int year=0;
		int month=0;

		do{
		System.out.println("请输入一个年份");
		year=input.nextInt();
		if(year<1900||year>2050) System.out.println("您输入的格式有误,请重新输入,");else break;
		}while(true);

		do{
		System.out.println("请输入一个月份");
		month=input.nextInt();
		if(month<1||month>12) System.out.println("您输入的格式有误,请重新输入,");else break;
		}while(true);

		int totals=totalDays(year,month);
		System.out.println("从1900年1月初开始到本月末总共有:"+totals+"天");
		int monthDays=monthDays(year,month);
		System.out.println("本月总共有:"+monthDays+"天");

		print(totals,monthDays);

	}
	
	public static int totalDays(int year,int month){
		int days=0;//1900年的1月1日 是星期一,从0开始
		int nums=0;
		for(int i=1900;i<=year;i++){
			if(i==year){
				for(int j=1;j<=month;j++){
					switch(j){
					case 1:
					case 3:
					case 5:
					case 7:
					case 8:
					case 10:
					case 12:
						days= 31;
						break;
					case 4:
					case 6:
					case 9:
					case 11:
						days= 30;
						break;
					case 2:
						if(i%4==0&&i%100!=0||i%400==0){
						days= 29 ;
						}else days= 28;
						break;
					}
					nums+=days;
				}
			}else{
				for(int j=1;j<=12;j++){
					switch(j){
					case 1:
					case 3:
					case 5:
					case 7:
					case 8:
					case 10:
					case 12:
						days= 31;
						break;
					case 4:
					case 6:
					case 9:
					case 11:
						days= 30;
						break;
					case 2:
						if(i%4==0&&i%100!=0||i%400==0){
						days= 29 ;
						}else days= 28;
						break;
						}
					nums+=days;
				}
			}
		}
		return nums;
	}
	
	public static int monthDays(int year,int month){
		int days=0;	
		switch(month){
		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12:
				return days=31;
		case 4:
		case 6:
		case 9:
		case 11:
				return days=30;
		case 2:
			if(year%4==0&&year%100!=0||year%400==0){
				return days=29 ;
			} return days= 28;
		}
		return days;
	}

	public static void print(int total,int monthDays){
		System.out.print("sun\tmon\tthes\twes\ttues\tfir\tsater\n");//首列是星期天
		int a=(total+1-monthDays)%7;//1900年1月1日是星期一,
		for(int i=1;i<=a;i++){
			System.out.print("\t ");
		}
		for(int i=1;i<=monthDays;i++){
			if((i+a)%7==0){
				System.out.println(i);
			}else{
				System.out.print(i+"\t");
			}
		}
		System.out.println();
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值