zoukankan      html  css  js  c++  java
  • Java获取月份第一天和最后一天日期

    package test;

    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.GregorianCalendar;
    import java.util.HashMap;
    import java.util.Map;

    public class Test {

        /**
         * @param args
         * @throws ParseException
         */
        public static void main(String[] args) throws ParseException {
            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
            String str = "2012-05-02";
            Date date = df.parse(str);
            Map<String, String> map = getFirstday_Lastday_Month(date);
            System.out.println("当月第一天:" + getFirstDay());
            System.out.println("当月最后一天:" + getLastDay());
            
            System.out.println("一个月前第一天:" + map.get("first"));
            System.out.println("一个月前最后一天:" + map.get("last"));
        }

        /**
         * 某一个月第一天和最后一天
         * @param date
         * @return
         */
        private static Map<String, String> getFirstday_Lastday_Month(Date date) {
            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
            calendar.add(Calendar.MONTH, -1);
            Date theDate = calendar.getTime();
            
            //上个月第一天
            GregorianCalendar gcLast = (GregorianCalendar) Calendar.getInstance();
            gcLast.setTime(theDate);
            gcLast.set(Calendar.DAY_OF_MONTH, 1);
            String day_first = df.format(gcLast.getTime());
            StringBuffer str = new StringBuffer().append(day_first).append(" 00:00:00");
            day_first = str.toString();

            //上个月最后一天
            calendar.add(Calendar.MONTH, 1);    //加一个月
            calendar.set(Calendar.DATE, 1);        //设置为该月第一天
            calendar.add(Calendar.DATE, -1);    //再减一天即为上个月最后一天
            String day_last = df.format(calendar.getTime());
            StringBuffer endStr = new StringBuffer().append(day_last).append(" 23:59:59");
            day_last = endStr.toString();

            Map<String, String> map = new HashMap<String, String>();
            map.put("first", day_first);
            map.put("last", day_last);
            return map;
        }

        /**
         * 当月第一天
         * @return
         */
        private static String getFirstDay() {
            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
            Calendar calendar = Calendar.getInstance();
            Date theDate = calendar.getTime();
            
            GregorianCalendar gcLast = (GregorianCalendar) Calendar.getInstance();
            gcLast.setTime(theDate);
            gcLast.set(Calendar.DAY_OF_MONTH, 1);
            String day_first = df.format(gcLast.getTime());
            StringBuffer str = new StringBuffer().append(day_first).append(" 00:00:00");
            return str.toString();

        }
        
        /**
         * 当月最后一天
         * @return
         */
        private static String getLastDay() {
            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
            Calendar calendar = Calendar.getInstance();
            Date theDate = calendar.getTime();
            String s = df.format(theDate);
            StringBuffer str = new StringBuffer().append(s).append(" 23:59:59");
            return str.toString();

        }

    }

  • 相关阅读:
    useState 的介绍和多状态声明(二)
    PHP:相对于C#,PHP中的个性化语法
    PHP:IIS下的PHP开发环境搭建
    PHP:同一件事,有太多的方式
    Javascript:再论Javascript的单线程机制 之 DOM渲染时机
    Javascript:拦截所有AJAX调用,重点处理服务器异常
    DDD:谈谈数据模型、领域模型、视图模型和命令模型
    .NET:再论异常处理,一个真实的故事
    Javascript:由 “鸭子类型” 得出来的推论
    Workflow:采用坐标变换(移动和旋转)画箭头
  • 原文地址:https://www.cnblogs.com/zmc/p/3072717.html
Copyright © 2011-2022 走看看