A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Crystal静新 中级黑马   /  2014-4-9 17:37  /  1208 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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;
            }
        
    }

评分

参与人数 1技术分 +1 收起 理由
itpower + 1

查看全部评分

3 个回复

倒序浏览
因为当你等于二月的时候,给sum赋值了,但是你却没有结束,它又往下走,就进了else
回复 使用道具 举报
这样写判断有些麻烦,看看我写的,希望对你有启发:
  1. class  CountDemo
  2. {
  3.         public static void main(String[] args){
  4.                 //1-12月份天数,闰年2月28天需要特别处理
  5.                 int[] monthDays = {31,28,31,30,31,30,31,31,30,31,30,31};
  6.                 int year = 2000,month = 5,sum = 0;

  7.                 for(int i=0; i<month; i++){
  8.                         if(i == 1/*2 - 1*/){
  9.                                 if(year%4==0 && year%100!=0 || year%400==0){
  10.                                         sum += 29;
  11.                                         continue;
  12.                                 }
  13.                         }
  14.                         sum += monthDays[i];
  15.                 }

  16.                 System.out.println(sum);
  17.                 //System.out.println("Hello World!");
  18.         }
  19. }
复制代码
回复 使用道具 举报
你的month取值为1的时候,循环是不会执行的
建议把i<month改成i<=month
  1. int year = 2014;
  2.                 int month = 7;
  3.                 //int day = 9;
  4.                 int sum = 0;

  5.                 for (int i = 1; i <= month; i++) {
  6.                         if (i == 2) {
  7.                                 if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
  8.                                         sum += 29;
  9.                                 } else {
  10.                                         sum += 28;
  11.                                 }
  12.                         }

  13.                         if (i == 4 || i == 6 || i == 9 || i == 11) {
  14.                                 sum += 30;
  15.                         }
  16.                         if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10
  17.                                         || i == 12) {
  18.                                 sum += 31;
  19.                         }
  20.                 }
  21.                 System.out.println("sum:"+sum);
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马