db2获取当前月份的第一天和最后一天

1.查询条件查询当月的数据,数据库是db2,然后网上找了很多,发现很复杂,我们的db2并不支持 LAST_DAY 之类的函数,最后实在是觉得太麻烦,索性用java处理,发现相当简单。

2.在此总结当sql太复杂很难实现或者影响开发效率的时候,能用java处理就用java处理。

3.java获取当月的第一天

    /**
     * 取得指定日期的所处月份的第一天
     * 
     * @param date
     *            指定日期。
     * @return 指定日期的所处月份的第一天
     */
    public static synchronized java.util.Date getFirstDayOfMonth(java.util.Date date)
    {
        /**
         * 详细设计: 1.设置为1号
         */
        GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();
        gc.setTime(date);
        gc.set(Calendar.DAY_OF_MONTH, 1);
        return gc.getTime();
    }

4.java获取当月的最后一天

    /**
     * 取得指定日期的所处月份的最后一天
     * 
     * @param date
     *            指定日期。
     * @return 指定日期的所处月份的最后一天
     */
    public static synchronized java.util.Date getLastDayOfMonth(java.util.Date date)
    {
        /**
         * 详细设计: 
         * 1.如果date在1月,则为31日 
         * 2.如果date在2月,则为28日 
         * 3.如果date在3月,则为31日
         * 4.如果date在4月,则为30日 
         * 5.如果date在5月,则为31日 
         * 6.如果date在6月,则为30日
         * 7.如果date在7月,则为31日 
         * 8.如果date在8月,则为31日 
         * 9.如果date在9月,则为30日
         * 10.如果date在10月,则为31日 
         * 11.如果date在11月,则为30日 
         * 12.如果date在12月,则为31日
         * 1.如果date在闰年的2月,则为29日
         */
        GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();
        gc.setTime(date);
        switch (gc.get(Calendar.MONTH))
        {
        case 0:
            gc.set(Calendar.DAY_OF_MONTH, 31);
            break;
        case 1:
            gc.set(Calendar.DAY_OF_MONTH, 28);
            break;
        case 2:
            gc.set(Calendar.DAY_OF_MONTH, 31);
            break;
        case 3:
            gc.set(Calendar.DAY_OF_MONTH, 30);
            break;
        case 4:
            gc.set(Calendar.DAY_OF_MONTH, 31);
            break;
        case 5:
            gc.set(Calendar.DAY_OF_MONTH, 30);
            break;
        case 6:
            gc.set(Calendar.DAY_OF_MONTH, 31);
            break;
        case 7:
            gc.set(Calendar.DAY_OF_MONTH, 31);
            break;
        case 8:
            gc.set(Calendar.DAY_OF_MONTH, 30);
            break;
        case 9:
            gc.set(Calendar.DAY_OF_MONTH, 31);
            break;
        case 10:
            gc.set(Calendar.DAY_OF_MONTH, 30);
            break;
        case 11:
            gc.set(Calendar.DAY_OF_MONTH, 31);
            break;
        }
        //检查闰年
        if ((gc.get(Calendar.MONTH) == Calendar.FEBRUARY) && (isLeapYear(gc.get(Calendar.YEAR))))
        {
            gc.set(Calendar.DAY_OF_MONTH, 29);
        }
        return gc.getTime();
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章