• Java 获取日期间的日期 & 根据日期获取星期


    场景:根据起止日期获取中间的日期; 根据日期获取当前日期的星期

         

    • 根据日期日期获取日期

        /**
         * 获取日期间日期
         * @param start
         * @param end
         * @return
         */
        private static List<Date> getBetweenDates(Date start, Date end) {
    
            List<Date> result = new ArrayList<>();
            Calendar tempStart = Calendar.getInstance();
            tempStart.setTime(start);
            Calendar tempEnd = Calendar.getInstance();
            tempEnd.setTime(end);
            tempEnd.add(Calendar.DAY_OF_YEAR, 1);
            while (tempStart.before(tempEnd)) {
                result.add(tempStart.getTime());
                tempStart.add(Calendar.DAY_OF_YEAR, 1);
            }
            return result;
        }
    • 根据日期获取属于星期几

        /**
         * 根据日期获取 星期 (2019-05-06 ——> 星期一)
         * @param datetime
         * @return
         */
        public static String dateToWeek(String datetime) {
    
            SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
            String[] weekDays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
            Calendar cal = Calendar.getInstance();
            Date date;
            try {
                date = f.parse(datetime);
                cal.setTime(date);
            } catch (ParseException e) {
                e.printStackTrace();
            }
            //一周的第几天
            int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
            if (w < 0)
                w = 0;
            return weekDays[w];
        }
    • 完整示例

    import java.text.DateFormat;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.List;
    
    public class TestMain {
    
        public static void main(String[] args) throws ParseException {
    
            DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            List<Date> dateList = getBetweenDates(sdf.parse("2019-05-06"), sdf.parse("2019-05-12"));
            for (Date date : dateList) {
                System.out.println(sdf.format(date) + " " + dateToWeek(sdf.format(date)));
            }
        }
    
    
        /**
         * 获取日期间日期
         * @param start
         * @param end
         * @return
         */
        private static List<Date> getBetweenDates(Date start, Date end) {
    
            List<Date> result = new ArrayList<>();
            Calendar tempStart = Calendar.getInstance();
            tempStart.setTime(start);
            Calendar tempEnd = Calendar.getInstance();
            tempEnd.setTime(end);
            tempEnd.add(Calendar.DAY_OF_YEAR, 1);
            while (tempStart.before(tempEnd)) {
                result.add(tempStart.getTime());
                tempStart.add(Calendar.DAY_OF_YEAR, 1);
            }
            return result;
        }
    
        /**
         * 根据日期获取 星期 (2019-05-06 ——> 星期一)
         * @param datetime
         * @return
         */
        public static String dateToWeek(String datetime) {
    
            SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
            String[] weekDays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
            Calendar cal = Calendar.getInstance();
            Date date;
            try {
                date = f.parse(datetime);
                cal.setTime(date);
            } catch (ParseException e) {
                e.printStackTrace();
            }
            //一周的第几天
            int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
            if (w < 0)
                w = 0;
            return weekDays[w];
        }
    }

      结果:

  • 相关阅读:
    我在ZZ这八年
    安装JBpm
    用程序实现HTTP压缩和缓存
    (转)WPF Custom Control Dependency Property Gotcha
    开发一个Word的代码高亮插件
    (转)Getting rid of the DSL model explorer
    (翻译)LearnVSXNow! #16 创建简单的编辑器2
    对 COM 组件的调用返回了错误 HRESULT E_FAIL。
    Word中使用代码高亮插件
    使用HttpWebRequest post数据时要注意UrlEncode
  • 原文地址:https://www.cnblogs.com/BillyYoung/p/10833471.html
Copyright © 2020-2023  润新知