哦,打错了,应该是
一个是:已知一个java.sql.Date类型实例 aDate,现在如何计算aDate所在月的天数?

解决方案 »

  1. (mDate.getTime()-aDate.getTime())/(1000*60*60*24)
      

  2. 1. 得到当月的最后一天的日期即可。
    2. 更科学的方法(calendar1和calendar2分别是java.util.Calendar的实例):calendar1.setTime(mDate);
    calendar2.setTime(aDate);
    int days = calendar1.get(Calendar.DAY_OF_YEAR) - calendar2.get(Calendar.DAY_OF_YEAR);
      

  3. 一:
    java.util.Date d = new Date(2005,1,2);

    Calendar c1 = Calendar.getInstance();
    Calendar c2 = Calendar.getInstance();
    c1.set(d.getYear(),d.getMonth(),1);
    c2.set(d.getYear(),d.getMonth()+1,1);
    System.out.println(c2.get(Calendar.DAY_OF_YEAR) - c1.get(Calendar.DAY_OF_YEAR));
    //注:返回28,因为是2月
    二:
    方法一样的,计算出两个日期在今年为第几天,相减即可。
      

  4. public static int getDayCount(String argStart, String argEnd) {    if (argStart.trim().length() != 8 ||
            argEnd.trim().length() != 8) {
            throw new IllegalArgumentException("argStart or argEnd length != 8");
        }
        
        Calendar start = Calendar.getInstance();
        Calendar end = Calendar.getInstance();
        
        start.setLenient(false);
        end.setLenient(false);    int startYear = Integer.parseInt(argStart.substring(0, 4));
        int startMonth = Integer.parseInt(argStart.substring(4, 6));
        int startDay = Integer.parseInt(argStart.substring(6, 8));    int endYear = Integer.parseInt(argEnd.substring(0, 4));
        int endMonth = Integer.parseInt(argEnd.substring(4, 6));
        int endDay = Integer.parseInt(argEnd.substring(6, 8));    start.set(startYear, startMonth - 1, startDay);
        end.set(endYear, endMonth - 1, endDay);    return getDayCount(start, end);
      }
    public static int getDayCount(Calendar argStart, Calendar argEnd) {    long days = 0;    Calendar start = Calendar.getInstance();
        Calendar end = Calendar.getInstance();    start.setLenient(false);
        end.setLenient(false);    start.set(Calendar.YEAR, argStart.get(Calendar.YEAR));
        start.set(Calendar.MONTH, argStart.get(Calendar.MONTH));
        start.set(Calendar.DATE, argStart.get(Calendar.DATE));    end.set(Calendar.YEAR, argEnd.get(Calendar.YEAR));
        end.set(Calendar.MONTH, argEnd.get(Calendar.MONTH));
        end.set(Calendar.DATE, argEnd.get(Calendar.DATE));    start.clear(Calendar.HOUR_OF_DAY);
        start.clear(Calendar.HOUR);
        start.clear(Calendar.MINUTE);
        start.clear(Calendar.SECOND);    end.clear(Calendar.HOUR_OF_DAY);
        end.clear(Calendar.HOUR);
        end.clear(Calendar.MINUTE);
        end.clear(Calendar.SECOND);    days = end.getTime().getTime() - start.getTime().getTime();    days = days / DATE_VALUE;    return (int)days;
      }
      

  5. private static final long  DATE_VALUE = 86400000;
      

类似问题 »