一张月报表,要计算日均数,客户选择一个月份,比如选择2007/10(日期统一是这种格式),要计算2007年截止到10月31号的天数,请问高手如何计算。
    我的基本思路是
1、选择月份后得到月末日期
2、计算月末日期和年初第一天的天数
    不知道程序如何实现(Java或者Informix都可以)
    如果有更简单的思路更好

解决方案 »

  1.   

    随便写了一个    public static void main(String[] args) {
            String time = "2007/10";
            String[] times = time.split("/");
            Calendar cal = new GregorianCalendar();
            cal.setLenient(false);
            cal.set(Calendar.YEAR, Integer.parseInt(times[0]));
            cal.set(Calendar.MONTH, Integer.parseInt(times[1]) - 1);
            cal.set(Calendar.DATE, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
            int result = cal.get(Calendar.DAY_OF_YEAR);
            System.out.println(result);    }
      

  2.   

    速度最快还是查表
    除了2月份,其他月份日期都是固定的
    查表得到每个月月底与年初的日期差,如果日期为2月或2月以后,再考虑是否为闰年,如果为闰年,日期差+1附代码:private static final int[] offdays=//不考虑闰年情况下每月月底距年初的天数
    {
    31,
    31+28,
    31+28+31,
    31+28+31+30,
    31+28+31+30+31,
    31+28+31+30+31+30,
    31+28+31+30+31+30+31,
    31+28+31+30+31+30+31+31,
    31+28+31+30+31+30+31+31+30,
    31+28+31+30+31+30+31+31+30+31,
    31+28+31+30+31+30+31+31+30+31+30,
    31+28+31+30+31+30+31+31+30+31+30+31
    };
    public static final int getOffDays(int year,int month)
    {
    int off=offdays[month];//查表计算日起差
    //如果是2月或2月后,并且是闰年的话,日期差+1
    if(month>=java.util.Calendar.FEBRUARY && new java.util.GregorianCalendar().isLeapYear(year))
    off++;
    return off;
    }