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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 尖卡斌引 中级黑马   /  2013-5-21 09:47  /  1272 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


自己编的一个小程序,计算n年内 13号落在各个星期的天数。
重1900年1月1日,开始计算。的n年里。
程序如上,好像是 jiSuan方法的问题,数组da中为什么全是零?

评分

参与人数 1技术分 +1 收起 理由
殇_心。 + 1

查看全部评分

1 个回复

倒序浏览
目测 楼主最外层的for循环条件有问题,日历设置年份1990,而判断条件是年份(不是年数)小于n(1-400)条件当然不满足,当然就不会又结果啦。下面是我的代码,因为只判断13日的,只确定终止条件,在while循环中做月份加1处理处理,希望对你有帮助。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Calendar;
public class Main {
        static Calendar cal=Calendar.getInstance();
        static int[] res=new int[7];//结果存放数组,res[0]为周日
        public static void main(String[] args) {
                int n=0;
                //从1900年1月13日开始计数
                cal.set(Calendar.YEAR, 1900);
                cal.set(Calendar.MONTH, 0);
                cal.set(Calendar.DAY_OF_MONTH, 13);
                try {
                        System.out.println("请输入年数..");
                        //录入键盘,获取年数
                        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
                        n=new Integer(br.readLine());
                        getRes(n);
                } catch (NumberFormatException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
               
                }
        /*
         * 获取并打印结果
         */
        public static void getRes(int n){
                //截止日期19**
                if((n<400)&&(n>0)){
                        while(!(((cal.get(Calendar.YEAR)==(1900+n-1))&&//截止日期****年12月31日
                                    (cal.get(Calendar.MONTH)==11)&&
                                    (cal.get(Calendar.DAY_OF_MONTH)==13)))){       
                        res[cal.get(Calendar.DAY_OF_WEEK)-1]++;
                        cal.add(Calendar.MONTH, 1);//月份加一
                   }
                        res[cal.get(Calendar.DAY_OF_WEEK)-1]++;//最后一天的weekday判断
                        sop(res);
                }else{
                        System.out.println("年数1-400");
                }
               
        }
        public static void sop(int[] a){
                System.out.println("周日天数"+a[0]);
                System.out.println("周一天数"+a[1]);
                System.out.println("周二天数"+a[2]);
                System.out.println("周三天数"+a[3]);
                System.out.println("周四天数"+a[4]);
                System.out.println("周五天数"+a[5]);
                System.out.println("周六天数"+a[6]);       
        }
}

评分

参与人数 1技术分 +1 收起 理由
殇_心。 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马