这段昨日里的代码 我怎么看 总觉得 没什么错误 但为什么每次 运行的时候 得到的结果 怎么总是和日历对不住 请大哥们 帮我找出 我这里的问题 更正后 并加以批注 谢谢 了package riLi;import java.util.Scanner;public class wanNianLi {
public static void main(String[] args) {
int nian=0 ,days = 0 ,yue=0 , xingqi=0;
Scanner input = new Scanner(System.in);
System.out.print("请输入年:");
nian = input.nextInt();
System.out.print("请输入月:");
yue = input.nextInt();
for(int i = 1990 ;i < nian ;i++){
if((nian%4==0&&nian%100!=0)||nian%400==0){
days+=366;
}
else{days+=365;
}
}
for(int i = 1 ; i < yue ; i++){
switch(i){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days+=31;
break;
case 2:
if((nian%4==0&&nian%100!=0)||nian%400==0){
days+=29;
}else{
days+=28;
}
break;
case 4:
case 6:
case 9:
case 11:
days+=30;
break;
}
}
System.out.println("总天数"+days);
xingqi = days%6+1;
System.out.print(nian+"年"+yue+"的第一天星期"+xingqi);
}}
public static void main(String[] args) {
int nian=0 ,days = 0 ,yue=0 , xingqi=0;
Scanner input = new Scanner(System.in);
System.out.print("请输入年:");
nian = input.nextInt();
System.out.print("请输入月:");
yue = input.nextInt();
for(int i = 1990 ;i < nian ;i++){
if((nian%4==0&&nian%100!=0)||nian%400==0){
days+=366;
}
else{days+=365;
}
}
for(int i = 1 ; i < yue ; i++){
switch(i){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days+=31;
break;
case 2:
if((nian%4==0&&nian%100!=0)||nian%400==0){
days+=29;
}else{
days+=28;
}
break;
case 4:
case 6:
case 9:
case 11:
days+=30;
break;
}
}
System.out.println("总天数"+days);
xingqi = days%6+1;
System.out.print(nian+"年"+yue+"的第一天星期"+xingqi);
}}
解决方案 »
- 字符串中的回车问题
- 如何在 编译时 判断一个 参数是否 合法?
- java程序如何判断输入的名字是单姓还是复姓
- 大虾!!!关于Iterator接口
- 运行程序为什么会有这个错误提示?
- 分层的入门问题.
- 想阅读LUCENE的源代码 则么把这个项目添加到ECLIPSE项目中
- 成功删除,但还是有异常,WHY?
- javax.naming.NoInitialContextException求解
- 我想学习java,但是以前没有搞过,有一点基础c++基础,现在主要用vb和asp,各位大侠,我要是学的话,大概要多久可以上手,帮我参考一下!谢谢
- 大数据量导出标准的excel2007格式 急
- jsp中怎样以字节的形式读取.xt文件中的数据?
2. 1990-01-01那天是星期一吗?
if((nian%4==0&&nian%100!=0)||nian%400==0){
days+=366;
}
else{days+=365;
}
}
第二处xingqi = days%6+1; // 应该是days % 7
public static void main(String[] args) {
int nian=0 ,days = 0 ,yue=0 , xingqi=0;
Scanner input = new Scanner(System.in);
System.out.print("请输入年:");
nian = input.nextInt();
System.out.print("请输入月:");
yue = input.nextInt();
for(int i = 1990 ;i < nian-1 ;i++){
if((nian%4==0&&nian%100!=0)||nian%400==0){
days+=366;
}
else{
days+=365;
}
}
for(int i = 1 ; i < yue ; i++){
switch(i){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days+=31;
break;
case 2:
if((nian%4==0&&nian%100!=0)||nian%400==0){
days+=29;
}else{
days+=28;
}
break;
case 4:
case 6:
case 9:
case 11:
days+=30;
break;
}
}
System.out.println("总天数"+days);
xingqi = days%7;
System.out.print(nian+"年"+yue+"月的第一天星期"+xingqi);
}
}标红的地方是改动的,算天数的时候多算了一年,最后除的时候是除7
for(int i = 1990 ;i < nian ;i++){
if((nian%4==0&&nian%100!=0)||nian%400==0){//这里应该是 i 而不是 nian
days+=366;
}
else{days+=365;
}
}刚才标错位置了!
if((nian%4==0&&nian%100!=0)||nian%400==0){
days+=366;
}
else{days+=365;
}
}
第二处:xingqi = days%6+1; // 应该是xingqi = days%7+1