RT,比如我给定2007年5月,需要获取这个月有多少天,怎么做?

解决方案 »

  1.   

    int monthDay = {31,28,31,30,31,30,31,31,30,31,30,31};
    if((year%4==0 && year%100 != 0)|| year%400==0 ) 
    monthDay[1]++;
      

  2.   

    int[] monDays = new int[] {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    if ( ( (year) % 4 == 0 && (year) % 100 != 0) ||(year) % 400 == 0) 
            monDays[1]++;
          
      

  3.   

    [(06.01).getTimes - (05.01).getTimes()]/(3600*24)
      

  4.   

    Calendar cal = Calendar.getInstance();
    cal.set(Calendar.YEAR,2007);
    cal.set(Calendar.MONTH, 5 - 1);//Java月份才0开始算
    int dateOfMonth = cal.getActualMaximum(Calendar.DATE);
      

  5.   

    这个问题在BEA好象专门讨论过,其它方法不是不行,但有最简单的最快的直接的数学运算不要为什么要
    生成那么多对象来获取一个数值?
      

  6.   

    有一个getActualMaximum,但不会用
      

  7.   

    设定好年月再用
    int dateOfMonth = cal.getActualMaximum(Calendar.DATE);
    就好了,你在构造实例的时候构造好久可以了
      

  8.   

    Calendar time=Calendar.getInstance(); 
    time.clear(); 
    time.set(Calendar.YEAR,year); 
    time.set(Calendar.MONTH,i-1);//Calendar对象默认一月为0             
    int day=time.getActualMaximum(Calendar.DAY_OF_MONTH);//本月份的天数
    注:在使用set方法之前,必须先clear一下,否则很多信息会继承自系统当前时间
      

  9.   

    原来都是这种水平.
    求100的平方,真正算个程序员的都会int i = 100x100;
    可偏偏这么多人喜欢int i = math.power(100,2);
    以显得他会用math类.唉.........
      

  10.   

    我覺得 并不是這個人為了顯示會用Math類
    而是這個人的眼光長遠
    用int i = math.power(100,2);
    便于程序和業務的變動和拓展
    有的時候解題 并不是為了一個問題
    而是為一類問題,
    如果要解100的10次方
    你是不是要寫成int i = 100 * 100 * 100 *....
    這意味著你每次作業都是從頭開始
    不會利用已有的資源
    個人覺得每個人都應該好好利用自己已有的代碼庫
    我想我的意思 你現在很明白了吧
    就是不太同意你的觀點!
      

  11.   

    我覺得 并不是這個人為了顯示會用Math類
    而是這個人的眼光長遠
    用int i = math.power(100,2);
    便于程序和業務的變動和拓展
    有的時候解題 并不是為了一個問題
    而是為一類問題,
    如果要解100的10次方
    你是不是要寫成int i = 100 * 100 * 100 *....
    這意味著你每次作業都是從頭開始
    不會利用已有的資源
    個人覺得每個人都應該好好利用自己已有的代碼庫
    我想我的意思 你現在很明白了吧
    就是不太同意你的觀點!