Java实现以1900年1月1日是给定一个年月日,然后显示对应星期几,要求使用基本语法,大体程序我都弄出来了

java实现以1900年1月1日是星期一为基础,给定一个年月日,显示对应星期几,要求使用基本语法,程序大体我做出来了,求帮忙给我修整下
import java.util.*;
public class Calendar
{
public static void main(String[] args)
{
Scanner input=new Scanner(System.in);
System.out.println("请输入年份");
int year=input.nextInt();
System.out.println("请输入月份");
int month=input.nextInt();
System.out.println(" 请输入天数");
int date=input.nextInt();
System.out.println("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六\t");
int a=0,b=0,sum;
boolean flag;
for(int y=1900;y<=year;y++){
if(y%4==0&&y%100!=0||y%400==0){
a++;}
else{b++}
}
sum=a*366+b*365;
for(int i=1;i<month;i++){
switch(month){
case1:
case3:
case5:
case7:
case8:
case10:
case12:
month=31;
break;
case4:
case6:
case9:
case11:
month=30;
braeak;
case2:
if(year%4==0&&year%100!=0||year%400==0){
month=29;}
else{month=28;}
}
break;
default:
}
sum+=date;
d=sum%7;
System.out.println(sum);
}
}

java.util.Calendar
api中有这个类,可以很方便的得到你想要的结果。
下边是例子。

import java.util.Calendar;
import java.util.Scanner;

public class Test {

public static void main(String[] args) {
Calendar c = Calendar.getInstance();
Scanner input = new Scanner(System.in);
System.out.println("请输入年份");
int year = input.nextInt();
System.out.println("请输入月份");
int month = input.nextInt();
System.out.println(" 请输入天数");
int date = input.nextInt();

c.set(Calendar.YEAR, year);
c.set(Calendar.MONTH, month - 1);
c.set(Calendar.DATE, date);

int week = c.get(Calendar.DAY_OF_WEEK);
switch (week) {
case 1:
System.out.println("星期日");
break;
case 2:
System.out.println("星期一");
break;
case 3:
System.out.println("星期二");
break;
case 4:
System.out.println("星期三");
break;
case 5:
System.out.println("星期四");
break;
case 6:
System.out.println("星期五");
break;
case 7:
System.out.println("星期六");
break;
}

}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-10
如果不能使用api的话,建议先获得间隔天数,然后用mod (模运算) 天数%7 + 1 = 星期几
相似回答