日期工具转换,取得当前半年、一年、本周、当前季度日期等开始结束时间

来源:互联网 发布:小说录入软件 编辑:程序博客网 时间:2024/06/05 19:04

import java.text.SimpleDateFormat;
import java.util.Calendar;

public class DateUtils {
    private static SimpleDateFormat shortSdf = new SimpleDateFormat("yyyy-MM-dd");
    /**
     * 当前季度的开始时间,即2012-01-1
     *
     * @return 季度开始时间
     */
    public static String getCurrentQuarterStartTime() {
        Calendar c = Calendar.getInstance();
        int currentMonth = c.get(Calendar.MONTH) + 1;
        String now = null;
        try {
            if (currentMonth >= 1 && currentMonth <= 3)
                c.set(Calendar.MONTH, 0);
            else if (currentMonth >= 4 && currentMonth <= 6)
                c.set(Calendar.MONTH, 3);
            else if (currentMonth >= 7 && currentMonth <= 9)
                c.set(Calendar.MONTH, 6);
            else if (currentMonth >= 10 && currentMonth <= 12)
                c.set(Calendar.MONTH, 9);
            c.set(Calendar.DATE, 1);
            now = shortSdf.format(c.getTime());
        } catch (Exception e) {
            e.printStackTrace();
        }
        return now;
    }
   
    /**
     * 当前季度的结束时间,即2012-03-31
     *
     * @return 季度结束时间
     */
    public static String getCurrentQuarterEndTime() {
        Calendar c = Calendar.getInstance();
        int currentMonth = c.get(Calendar.MONTH) + 1;
        String now = null;
        try {
            if (currentMonth >= 1 && currentMonth <= 3) {
                c.set(Calendar.MONTH, 2);
                c.set(Calendar.DATE, 31);
            } else if (currentMonth >= 4 && currentMonth <= 6) {
                c.set(Calendar.MONTH, 5);
                c.set(Calendar.DATE, 30);
            } else if (currentMonth >= 7 && currentMonth <= 9) {
                c.set(Calendar.MONTH, 8);
                c.set(Calendar.DATE, 30);
            } else if (currentMonth >= 10 && currentMonth <= 12) {
                c.set(Calendar.MONTH, 11);
                c.set(Calendar.DATE, 31);
            }
            now = shortSdf.format(c.getTime());
        } catch (Exception e) {
            e.printStackTrace();
        }

        return now;
    }
   
    /**
     * 当前半年的开始时间,即2012-01-01
     *
     * @return 半年的开始时间
     */
    public static String getCurrentSemiannualStartTime() {
        Calendar c = Calendar.getInstance();
        String now = null;
        int currentMonth = c.get(Calendar.MONTH) + 1;
        try {
            if(currentMonth < 6){
                c.set(Calendar.MONTH, 0);
                c.set(Calendar.DATE, 1);
            }else{
                c.set(Calendar.MONTH, 6);
                c.set(Calendar.DATE, 1);
            }
           
            now = shortSdf.format(c.getTime());
        } catch (Exception e) {
            e.printStackTrace();
        }
        return now;
    }
    /**
     * 当前半年的结束时间,即2012-01-01
     *
     * @return 半年的结束时间
     */
    public static String getCurrentSemiannualEndTime() {
        Calendar c = Calendar.getInstance();
        int currentMonth = c.get(Calendar.MONTH) + 1;
        String now = null;
        try {
            if(currentMonth < 6){
                c.set(Calendar.MONTH, 5);
                c.set(Calendar.DATE, 30);
            }else{
                c.set(Calendar.MONTH, 11);
                c.set(Calendar.DATE, 31);
            }
            now = shortSdf.format(c.getTime());
        } catch (Exception e) {
            e.printStackTrace();
        }
        return now;
    }
    /**
     * 当前年的开始时间,即2012-01-01
     *
     * @return 年的开始时间
     */
    public static String getCurrentYearStartTime() {
        Calendar c = Calendar.getInstance();
        String now = null;
        try {
            c.set(Calendar.MONTH, 0);
            c.set(Calendar.DATE, 1);
            now = shortSdf.format(c.getTime());
        } catch (Exception e) {
            e.printStackTrace();
        }
        return now;
    }

    /**
     * 当前年的结束时间,即2012-12-31
     *
     * @return 年的结束时间
     */
    public static String getCurrentYearEndTime() {
        Calendar c = Calendar.getInstance();
        String now = null;
        try {
            c.set(Calendar.MONTH, 11);
            c.set(Calendar.DATE, 31);
            now = shortSdf.format(c.getTime());
        } catch (Exception e) {
            e.printStackTrace();
        }
        return now;
    }
    /**
     *
     * 取本周星期五的日期
     *
     * @return 返回星期五
     *
     */
    public static String getCurrentWeekday(){
        Calendar c = Calendar.getInstance();
        String now = null;
        try {
        c.set(Calendar.DAY_OF_WEEK, 6);
        now = shortSdf.format(c.getTime());
        } catch (Exception e) {
            e.printStackTrace();
        }
        return now;
    }
   public static void main(String args[]) {
      System.out.println("当前季度开始时间:" + getCurrentQuarterStartTime());
       System.out.println("当前季度结束时间:" + getCurrentQuarterEndTime());
       System.out.println("当前年开始时间:" + getCurrentYearStartTime());
       System.out.println("当前年结束时间:" + getCurrentYearEndTime());
        System.out.println("当前半年开始时间:" + getCurrentSemiannualStartTime());
        System.out.println("当前半年结束时间:"+ getCurrentSemiannualEndTime());
       System.out.println(getCurrentWeekday());
    }

}