黑马程序员技术交流社区
标题:
判断月是多少后加入天数
[打印本页]
作者:
Crystal静新
时间:
2014-4-9 17:37
标题:
判断月是多少后加入天数
本帖最后由 Crystal静新 于 2014-4-10 18:14 编辑
判断月是多少后加入天数,比如我设置一个循环。里面有if当i=2并且是润年的时候,就加29,不是润年就加28
if当i=4,6,9,11的时候就加30.问题就来了,当我最后只写else的时候,就加31,后面就利用公式输出你输入的几月几日是星期几,可是这里输出来的星期几是错误的,只有写if(i=1,3,5,7,8,10,12)的时候,输出的星期才正确。我想不出原因在哪里,我是用java写的
问题补充:
for(int i=1;i<month;i++){
if(i==2){
if(year%4==0&&year%100!=0||year%400==0){
sum+=29;
}else{
sum+=28;
}
}
if(i==4||i==6||i==9||i==11){
sum+=30;
}
if(i==1||i==3||i==5||i==7||i==8||i==10||i==12){
sum+=31;
}
}
作者:
╰つ
时间:
2014-4-9 18:18
因为当你等于二月的时候,给sum赋值了,但是你却没有结束,它又往下走,就进了else
作者:
ithmC4
时间:
2014-4-9 22:17
这样写判断有些麻烦,看看我写的,希望对你有启发:
class CountDemo
{
public static void main(String[] args){
//1-12月份天数,闰年2月28天需要特别处理
int[] monthDays = {31,28,31,30,31,30,31,31,30,31,30,31};
int year = 2000,month = 5,sum = 0;
for(int i=0; i<month; i++){
if(i == 1/*2 - 1*/){
if(year%4==0 && year%100!=0 || year%400==0){
sum += 29;
continue;
}
}
sum += monthDays[i];
}
System.out.println(sum);
//System.out.println("Hello World!");
}
}
复制代码
作者:
leon_hm
时间:
2014-4-9 23:28
你的month取值为1的时候,循环是不会执行的
建议把i<month改成i<=month
int year = 2014;
int month = 7;
//int day = 9;
int sum = 0;
for (int i = 1; i <= month; i++) {
if (i == 2) {
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
sum += 29;
} else {
sum += 28;
}
}
if (i == 4 || i == 6 || i == 9 || i == 11) {
sum += 30;
}
if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10
|| i == 12) {
sum += 31;
}
}
System.out.println("sum:"+sum);
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2