• 关于指定日期的获取


     

    java使用Calendar类获得指定日期

       关于指定日期的获取,是根据指定日期和当前日期相差的天数,然后使用set方法设置Calendar.DAY_OF_MONTH的值。
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.DAY_OF_MONTH, cal.get(Calendar.DAY_OF_MONTH) - dayPlus);
        (dayPlus表示指定日期和当前日期相差的天数)
        不进行set,默认是获取系统时间,初步测试没有问题,可正确获得指定日期。
        *************************************************************************************************
        代码:
        // 获得当前日期
        public static String getDate() {
            Calendar cal = Calendar.getInstance();
            return getDate(cal);
        }

        // 获得日期
        private static String getDate(Calendar cal) {
            String v_strDate = "";
            int v_intYear = cal.get(Calendar.YEAR);
            int v_intMonth = cal.get(Calendar.MONTH) + 1;
            int v_intDAY = cal.get(Calendar.DAY_OF_MONTH);
            int v_intHOUR = cal.get(Calendar.HOUR_OF_DAY);
            int v_intMINUTE = cal.get(Calendar.MINUTE);
            int v_intSECOND = cal.get(Calendar.SECOND);
            
            if (v_intDAY < 10) {
                v_strDate = v_strDate + "0" + v_intDAY + "-";
            }else {
                v_strDate = v_strDate + v_intDAY + "-";
            }
            if (v_intMonth < 10) {
                v_strDate = v_strDate + "0" + v_intMonth + "-";
            }else {
                v_strDate = v_strDate + v_intMonth + "-";
            }
            v_strDate = v_strDate + v_intYear + " ";
            
            if (v_intHOUR < 10) {
                v_strDate = v_strDate + "0" + v_intHOUR + ":";
            }else {
                v_strDate = v_strDate + v_intHOUR + ":";
            }
            if (v_intMINUTE < 10) {
                v_strDate = v_strDate + "0" + v_intMINUTE + ":";
            } else {
                v_strDate = v_strDate + v_intMINUTE + ":";
            }
            if (v_intSECOND < 10) {
                v_strDate = v_strDate + "0" + v_intSECOND;
            } else {
                v_strDate = v_strDate + v_intSECOND;
            }
            cal = null;
            return v_strDate;
        }

        //获得当前日期与本周日相差的天数
        private static int getMondayPlus() {
            Calendar cd = Calendar.getInstance();
            // 获得今天是一周的第几天,星期日是第一天,星期二是第二天......
            int dayOfWeek = cd.get(Calendar.DAY_OF_WEEK) - 1; // 因为按中国礼拜一作为第一天所以这里减1
            if (dayOfWeek == 1) {
                return 0;
            } else {
                return dayOfWeek - 1;
            }
        }

        //获得本周一的日期
        public static String getThisMondayDate() {
            Calendar cal = Calendar.getInstance();
            int mondayPlus = getMondayPlus();
            cal.set(Calendar.DAY_OF_MONTH, cal.get(Calendar.DAY_OF_MONTH)-mondayPlus);
            cal.set(Calendar.HOUR_OF_DAY, 0);
            cal.set(Calendar.MINUTE, 0);
            cal.set(Calendar.SECOND, 0);
            return getDate(cal);
        }
        
        //获得本月1号的日期
        public static String getCurrentMonthBeginDate(){
            Calendar cal = Calendar.getInstance();
            cal.set(Calendar.DAY_OF_MONTH, 1);
            cal.set(Calendar.HOUR_OF_DAY, 0);
            cal.set(Calendar.MINUTE, 0);
            cal.set(Calendar.SECOND, 0);
            return getDate(cal);
        }
        
        //获得上周一的日期
        public static String getLastMondayDate(){
            Calendar cal = Calendar.getInstance();
            int dayPlus = getMondayPlus()+7;
            cal.set(Calendar.DAY_OF_MONTH, cal.get(Calendar.DAY_OF_MONTH)-dayPlus);
            cal.set(Calendar.HOUR_OF_DAY, 0);
            cal.set(Calendar.MINUTE, 0);
            cal.set(Calendar.SECOND, 0);
            return getDate(cal);
        }
        
        //获得上周日的日期
        public static String getLastSundayDate(){
            Calendar cal = Calendar.getInstance();
            int dayPlus = getMondayPlus()+1;
            cal.set(Calendar.DAY_OF_MONTH, cal.get(Calendar.DAY_OF_MONTH)-dayPlus);
            cal.set(Calendar.HOUR_OF_DAY, 23);
            cal.set(Calendar.MINUTE, 59);
            cal.set(Calendar.SECOND, 59);
            return getDate(cal);
        }
        
        //获得上月1号的日期
        public static String getLastMonthBeginDate(){
            Calendar cal = Calendar.getInstance();
            cal.set(Calendar.MONTH, cal.get(Calendar.MONTH)-1);
            cal.set(Calendar.DAY_OF_MONTH,1);
            cal.set(Calendar.HOUR_OF_DAY, 0);
            cal.set(Calendar.MINUTE, 0);
            cal.set(Calendar.SECOND, 0);
            return getDate(cal);
        }
        
        //获得上个月最后一天的日期
        public static String getLastMonthEndDate(){
            Calendar cal = Calendar.getInstance();
            cal.set(Calendar.DAY_OF_MONTH, 0);
            cal.set(Calendar.HOUR_OF_DAY, 23);
            cal.set(Calendar.MINUTE, 59);
            cal.set(Calendar.SECOND, 59);
            return getDate(cal);
        }

        public static void main(String[] args) {
            System.out.println(getDate());
            System.out.println(getThisMondayDate());
            System.out.println(getCurrentMonthBeginDate());
            System.out.println(getLastMondayDate());
            System.out.println(getLastSundayDate());
            System.out.println(getLastMonthBeginDate());
            System.out.println(getLastMonthEndDate());
        }
  • 相关阅读:
    UWP 常用文件夹
    UWP 判断Windows10系统版本
    UWP 图片缩放
    Windows 10「设置」应用完整MS-Settings快捷方式汇总
    UWP 用Thumb 控件仿制一个可拖动悬浮 Button
    【mp3】洗脑循环了!龙珠超 自在极意功 【究极の圣戦】串田アキラ 背景纯音乐
    工作三年后的总结
    css3 移动端 开关效果
    js 移动端上拉加载下一页通用方案
    【我的上传番剧/电影】收藏夹
  • 原文地址:https://www.cnblogs.com/isoftware/p/3921827.html
Copyright © 2020-2023  润新知