• Android 获取某月所有的日期和星期


    有时候需要获取一个月的信息去展示数据,提供一些方法获取
    
    private static List getWeekDay() {
        Calendar calendar = Calendar.getInstance();
        // 获取本周的第一天
        int firstDayOfWeek = calendar.getFirstDayOfWeek();
        List list = new ArrayList<>();
        for (int i = 0; i < 7; i++) {
            //Calendar.ERA          表示纪元
            //Calendar.MONTH        表示月
            //Calendar.DAY_OF_WEEK  表示星期几
            //Calendar.AM_PM        上午还是下午
            calendar.set(Calendar.DAY_OF_WEEK, firstDayOfWeek + i);
            WeekDay weekDay = new WeekDay();
            // 获取星期的显示名称,例如:周一、星期一、Monday等等
            //Calendar.SHORT得到的是诸如“周日”的名称,Calendar.LONG得到的是诸如“星期日”的名称
            //Locale.CHINA(中文)、Locale.ENGLISH(英文)等等。也可以使用Locale.getDefault()获取默认语言环境
            weekDay.week = calendar.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.SHORT, Locale.ENGLISH);
            weekDay.month = new SimpleDateFormat("MM").format(calendar.getTime());
            weekDay.day = new SimpleDateFormat("dd").format(calendar.getTime());
            list.add(weekDay);
        }
        return list;
    }
    
    private static List getMonthDay() {
        Calendar calendar = Calendar.getInstance();
        //设置某一年
        calendar.set(Calendar.YEAR, 2023);
        //设置为某一个月
        calendar.set(Calendar.MONTH, getMonth() - 1);
        //本月第一天
        int firstDayOfMonth = calendar.getActualMinimum(Calendar.DAY_OF_MONTH);
        //本月最后一天
        int lastDayOfMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
        List list = new ArrayList<>();
        for (int i = 0; i < lastDayOfMonth; i++) {
            calendar.set(Calendar.DAY_OF_MONTH, firstDayOfMonth + i);
            WeekDay weekDay = new WeekDay();
            // 获取星期的显示名称,例如:周一、星期一、Monday等等
            weekDay.week = calendar.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.SHORT, Locale.getDefault());
            weekDay.month = new SimpleDateFormat("MM").format(calendar.getTime());
            weekDay.day = new SimpleDateFormat("dd").format(calendar.getTime());
            list.add(weekDay);
        }
        return list;
    }
    
    //获取当前月
    public static int getMonth() {
        Calendar cd = Calendar.getInstance();
        //显示当前月份需要+1,因为是从0 开始计算的,使用时需要 -1 ,不然就是下个月份的日期了
        return cd.get(Calendar.MONTH) + 1;
    }
    
    private static class WeekDay {
        //星期的显示名称
        public String week;
        //对应的日期
        public String month;
        public String day;
    
        @Override
        public String toString() {
            return "WeekDay{" +
                    "week='" + week + '\'' +
                    ", month='" + month + '\'' +
                    ", day='" + day + '\'' +
                    '}';
        }
    
    }

    打印一下:

    List list = getMonthDay();
    for (WeekDay weekday : list) {
        Log.e("--------------->", weekday.toString());
    }
  • 相关阅读:
    HDU_1018
    黑马程序员spring+springMVC+Maven高级+springboot+MyBatisPlus总结之spring介绍和IoC
    Linux入门学习 —— 常用的基本命令(上)
    虚幻C+++基础 day2
    Linux常用命令之top监测
    pytets+allure框架用例添加统计用例测试耗时
    python基础---文件基本操作(20)
    chapter6——流水线的艺术
    Lumion 和 Enscape 应该选择怎样的笔记本电脑?
    【Python】PySpark 数据处理 ① ( PySpark 简介 | Apache Spark 简介 | Spark 的 Python 语言版本 PySpark | Python 语言场景 )
  • 原文地址:https://blog.csdn.net/lw1389074/article/details/125887302