关于一个万年历代码的问题

来源:百度知道 编辑:UC知道 时间:2024/05/21 04:32:28
以下代码在运行到高年历时总是差几天,希望高手给指教一下,小弟感谢了!另外在最后第一个星期遇见周日时不能还行,望指教了各位。
import java.util.*;
public class cui
{
public static void main(String[] args)
{
Scanner input=new Scanner(System.in);//收入年分与月份信息
System.out.println("请输入年份:");
int nian=input.nextInt();
System.out.println("请输入月份:");
int yue=input.nextInt();

int days=0;
if(yue==1||yue==3||yue==5||yue==7||yue==8||yue==10||yue==12)
{
days=31;
}else if (yue==2&&nian%4==0&&nian%100!=0)
{
days=29;
}else if (yue==2)
{
days=28;
}else if (yue==4||yue==6||yue==9||yue==11)
{
days=30;
}else{//判断月份的天数

}

int sum=0;
for(int i=1900;i<nian;i++)
{
if(i%4==0&&i%100!=0)
{
sum=sum+366;
}else
{
sum=sum+365;
}
}

int no=0;
if(yue==1){
no=

个人认为 我这个万年历更好点。
********************************分隔线***************************
package myCalendar;

public class Calc {
private int year,month,days;//年,月,日
private boolean leap;//用以表示当年是否闰年
private String week;//用以表示当天是星期几
private int firstday;//用以表示当月的第一天是星期几

//构造函数
public Calc(int year,int month,int days){
//初始化数据
this.year=year;
this.month=month;
this.days=days;
//判断当年是否闰年
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
leap = true;
else
leap = false;
//判断当天是星期几
//1900.01.01星期一,以此作为标准
int week_i=0;
for (int i=1900;i<year;i++)
if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0)
week_i+=2;
else
week_i++;
for (int i=1;i<month;i++)
week_i+=monthday(i);
firstday=week_i+1;
week_i+=days;
week_i%=7;
switch (week_i) {
case 0:week="星期日";break;
case 1:week