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();
    }

 

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