首页 > 其他分享 >获取时间段内每周一

获取时间段内每周一

时间:2023-04-28 11:33:34浏览次数:41  
标签:week return String format 每周 获取 时间段 date Calendar

原文 :java获取时间段内的所有星期一_java获取一段时间内的周一_程序媛的格子衫的博客-CSDN博客

 

 

大神原文,指定某个时间端,指定需要星期几,返回时间段内指定星期几的日期字符串

点击查看代码
/**
     * @param args
     * @throws Exception
     */
    public static void main(String[] args) throws Exception {
        String week = "星期一";
        List<String> test = getWeekly("2023-04-01 14:19:29","2023-04-20 00:00:00",week);
        System.err.println(test);
    }
    public static boolean weekdayOrNot(String date,String week) throws ParseException{
        DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date currentDate = sdf.parse(date);
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("EEEE");
        String currSun = simpleDateFormat.format(currentDate);
        //判断当前是星期几
        if (currSun.equals(week)) {
            return true;
        }
        return false;
    }
    public static String getWeek(Date date) throws Exception {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String format = sdf.format(date);
        String substring = format.substring(0, 7);
        int number = calendar.get(Calendar.WEEK_OF_MONTH);
        String week = substring + "-0" + number;
        return week;
    }
    /**
     * 根据开始时间和结束时间计算之间的星期
     * @param beginDate
     * @param endDate
     * @return
     * @throws Exception
     */
    public static List<String> getWeekly(String beginDate,String endDate,String week) throws Exception{
        //获取俩个日期之间的日期
        List<String> list = findDates(beginDate, endDate);
        List<String> weekDateList = new ArrayList<>();
        //遍历
        for (String date : list) {
            //判断当前是星期几
            boolean thursday = weekdayOrNot(date,week);
            if (thursday==true) {
                weekDateList.add(date);
            }
        }
        return weekDateList;
    }
    public static List<String> findDates(String dBegin, String dEnd) throws ParseException {
        DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Calendar calBegin = Calendar.getInstance();
        calBegin.setTime(format.parse(dBegin));
        Calendar calEnd = Calendar.getInstance();
        calEnd.setTime(format.parse(dEnd));
        List<String> Datelist = new ArrayList<String>();
        while (format.parse(dEnd).after(calBegin.getTime())) {
            calBegin.add(Calendar.DAY_OF_MONTH, 1);
            Datelist.add(format.format(calBegin.getTime()));
        }
        Datelist.add(dBegin);
        return Datelist;
    }

    /**
     * 日期转星期
     *
     * @param datetime
     * @return
     */
    public static String currentDataToWeek(String datetime) {
        SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String[] weekDays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
        // 获得一个日历
        Calendar cal = Calendar.getInstance();
        Date datet = null;
        try {
            datet = f.parse(datetime);
            cal.setTime(datet);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        // 指示一个星期中的某天。
        int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
        if (w < 0)
            w = 0;
        return weekDays[w];
    }

标签:week,return,String,format,每周,获取,时间段,date,Calendar
From: https://www.cnblogs.com/HY74110/p/17361619.html

相关文章

  • selenium笔记之webDriver获取浏览器控制台日志
    大家应该都听过或者用过sentry,非常好用和强大,有用户当时的各种环境,关联sourceMap后能定位到代码层面(Sentry是一个开源的错误跟踪工具,帮助开发人员监控和诊断他们应用程序中的问题。它提供实时监测、警报和分析多个平台和编程语言中的错误和异常。Sentry可以与各种框架和服务集......
  • Python3文件路径/目录获取教程
    一、获取文件路径实现1.1获取当前文件路径importoscurrent_file_path=__file__print(f"current_file_path:{current_file_path}")__file__变量其实有个问题,当文件被是被调用文件时__file__总是文件的绝对路径;但当文件是直接被执行的文件时,__file__并不总是文件的绝对......
  • jdbcTemplate 获取表字段名称(支持表内无数据获取)
    最近有项目用到多数据源之间的SQL配置,要获取某个数据源的字段名称,网上查了下。好多都是要库里至少有一条数据才能拿到,自己摸索写了一下。MYSQL测试能正常获取,其他类型数据库待测试。List<String>columns=newArrayList<>();ResultSetMetaDataresultSetMetaData=jdbcTemp......
  • delphi 操作 TEdgeBrowser 获取与设置 Cookie
    delphi11.2完整源码下载详情请查看源码,现提供部分代码供大家查看DELPHI智慧战神-技术群  603146133 原来的群已被查封,请大家加新群unituYouYouMgt;interfaceusesuSimpleBase,uEdgeCls,uIdhttpEx,System.SysUtils,System.StrUtils,uWebView2Horse,WebVie......
  • Unity获取Material的属性名小坑
    最近在学习UntiyShader的使用,在获取UnityMaterial的属性名时遇到了一个小坑。如图我现在实现了一个云的效果的ShaderShader的属性名如下图红框所示: 当我们想用代码尝试获取属性名并修改时,问题出现了: 报错: 解决:查看shadergraph发现了问题,属性名原来与Shader中的......
  • Docker获取Let`s Encrypt SSL 证书
    文中的操作都是在CentOSStreamrelease9下执行的,使用的是root用户。1.安装docker#卸载原有的dockeryumremovedockerdocker-clientdocker-client-latestdocker-commondocker-latestdocker-latest-logrotatedocker-logrotatedocker-engine#安装依赖yuminstall......
  • js获取服务器端时间
    平常获取时间一般都是用newDate()来获取时间,但有时不能直接这么做,因为这样得到的仅仅是客户端的时间,这个是可以随意更改的,而且也跟时区有关,不同时区得到的时间也不一样。像某些场合,比如商品优惠的时间是依据后台服务器的时间的。这里暂时有两种方法去获取:方法1:jqueryfunctiong......
  • Elmo 驱动器关于双编码器读数的获取方式
    问题提出本文使用的Elmo驱动器型号是GoldTwitter。想要获取双编码器的目的是发现当使用双编码器进行驱动器调参时,发现位置环跟踪非常不稳定,存在震荡现象。因为在Elmo的双编码器配置里,电机端的编码器用于配置速度环和Communication,而输出端(负载端)的编码器用于配......
  • C#高性能动态获取对象属性值的步骤
    动态获取对象的性能值,这个在开发过程中经常会遇到,这里我们探讨一下何如高性能的获取属性值。为了对比测试,我们定义一个类PeoplepublicclassPeople{publicstringName{get;set;}}然后通过直接代码调用方式来取1千万次看要花多少时间:privatestaticvoidDirectly......
  • c/c++程序中获取当前可执行文件所在的目录路径,使用跨平台的program_location
    c/c++程序中获取当前可执行文件所在的目录路径对于大型工程中,可执行文件中通过c/c++代码获取到当前路径,可以很大方便于工程后续的部署与运维工作。比如说根据当前的可执行文件路径获取到配置文件的路径,然后加载读取配置文件。有了这个能力就不用再在操作系统中配置环境变量来指......