日历制作

本文介绍了一个使用Java编写的简单日历程序。该程序通过用户输入的年份和月份,计算并显示对应的日历。程序考虑了不同月份的天数及闰年情况,通过累加天数来确定每月第一天是周几。

初学Java,写了个日历,无话

//简单日历制作
import java.util.Scanner;
public class Calendar{
    public static void main(String[] args){
        Scanner in=new Scanner(System.in);
        System.out.println("请输入年份:");
        int year=in.nextInt();
        System.out.println("请输入月份:");
        int month=in.nextInt();
        int sum=0;//sum表示输入的这个月的1月1号和1900年1月1号相距的天数
        
        for(int i=1900;i<year;i++){//判断是否闰年累加sum
            if(i%4==0&&i%100!=0||i%400==0){
                sum=sum+366;
            }
            else{
                sum=sum+365;
            }
        }
        
        for(int i=1;i<month;i++){//判断月份哪种类型累加sum
            if(i==2){
            	if(year%4==0&&year%100!=0||year%400==0){
            		sum=sum+29;
            	}
            	else{
                    sum=sum+28;
                }
            }
            else {
            	if(i==4||i==6||i==9||i==11){  
                	sum=sum+30;
            	}
            	else{
            		sum=sum+31;
            	}
            }
        }
        
        System.out.println("日\t一\t二\t三\t四\t五\t六");
        int t;//t表示当前月份的天数
        if(month==2){
             if(year%4==0&&year%100!=0||year%400==0){
                 t=29;
             }
             else{
                 t=28;
             }
        }
        else{
        	if(month==4||month==6||month==9||month==11){
                 t=30;
             }
             else{
            	 t=31;
             }
        }
        
        sum=sum+1;//由于1900年1月1号那天恰巧是星期一,而我们计算按每周第一天为星期日,所以sum+1
	for(int i=1;i<=sum%7;i++){//日历第一行前面的空白
	    System.out.print("\t");
	}
	for(int i=1;i<=t;i++){//从这个月1号开始画日历,逢六换行
	    if(sum%7==6){
	    	System.out.print(i+"\n");
	    }
	    else{
	    	System.out.print(i+"\t");
	    }
	    sum++;//画好一天,sum要+1,画下一天
	}
    }
}




评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值