如何打印2019年每个月的第一个星期天的日期

2023-11-04

这是一个关于日期处理的题目,在这里我主要用了Calendar类的相关属性与方法。
首先,我们来分析一下:
我们可以从2019年1月1日,用while循环依次遍历,到2019年12月7日结束,每次加一天,利用if判断,满足在第一周且是周日的条件,我们就进行输出。但Calendar类Calendar.WEEK_OF_MONTH属性,即这一周在一个月中属于第几周这一属性设计的很不合我们的习惯,他是以周六作为一周的结束,比如19年的6月1日,恰好在周六,那么第一周就只有这一天,而作为周日的2号就在第二周了,所以我们通过运算符,把第二周也算上,再嵌套个if判断Calendar.DAY_OF_WEEK == 1 && Calendar.DATE) <= 7,
这样就很完美的输出了每个月的第一周的周日。废话少说,亮代码:

    public static void main(String[] args) throws ParseException {

        // 先获得当前示例对象
        Calendar start = Calendar.getInstance();
        Calendar end = Calendar.getInstance();

        // 设置开始与结束时间
        String startDate = "2019-1-1";
        String endDate = "2019-12-31";

        String form = "yyyy-MM-dd";
        SimpleDateFormat spf = new SimpleDateFormat(form);

        // 分别设置calendar对象的时间
        start.setTime(spf.parse(startDate));
        end.setTime(spf.parse(endDate));

        // 进入循环
        while (start.before(end)) {

            // 如果当前周是本月的第一周,或者是本月的第二周
            if (start.get(Calendar.WEEK_OF_MONTH) == 1 || start.get(Calendar.WEEK_OF_MONTH) == 2) {
                // 如果当前天数是本周的第一天,即星期天  且 当前 日这个字段 <= 7则输出
                if (start.get(Calendar.DAY_OF_WEEK) == 1 && start.get(Calendar.DATE) <= 7) {
                    System.out.println(spf.format(start.getTime()));
                }
            }

            // 每循环一次结束后,对当前日期 +1
            start.add(Calendar.DATE, 1);

        }

    }

那么我们能不能稍做些优化呢?不用问了,当然可以。这个问题我们还可以这样思考,我们只需要判断周末是不是在一个月的第一周就可以,不用每天加1,我们把循环的条件,即start.add(Calendar.DATE, 1)改为start.add(Calendar.DATE, 7),这一段while循环就只执行了原来的1/7次。具体修改就靠你们自己实现了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何打印2019年每个月的第一个星期天的日期 的相关文章

  • 配置 OPC UA 服务器 (Milo)?

    我刚刚查看了 Eclipse Milo 项目 https projects eclipse org proposals milo https projects eclipse org proposals milo 这对于 开放 OPC UA
  • 尝试提取 jar 文件时出错

    我正在尝试使用以下命令提取 jar 文件 C Program Files Java jdk1 7 0 25 bin gt jar xf C Users MyJar jar 但出现错误 java io IOException META INF
  • 如何实现 Eclipse 清理和构建(又名重建)?

    我删除了我的 binEclipse Indigo 中的文件夹 与 Helios 非常相似 现在我想知道如何重建我的 Java 项目 我只是找不到像 Netbeans 中那样的按钮 对于 Eclipse 您可以在下面找到重建选项项目 gt 清
  • 如何在异常处理程序中访问访问请求主体

    我们有一个 Spring Boot 应用程序 我们的控制器期望在我们的端点之一中有一个 XML 文档元素 PostMapping value api v1 do stuff consumes APPLICATION XML VALUE pr
  • Java 增强型 For-Loop 比传统的更快?

    所以我的理解是 增强的 for 循环应该更慢 因为它们必须使用迭代器 但是我的代码提供了混合结果 是的 我知道循环逻辑占用了循环中花费的大部分时间 对于少量迭代 100 1000 增强的 for 循环在使用和不使用 JIT 的情况下似乎都要
  • 通过 Session.update 和 HibernateTemplate.merge 进行 Hibernate 更新的区别

    我看到了更新操作的类型 第一的 getHibernateTemplate execute new HibernateCallback public Object doInHibernate Session session session f
  • IDEA:javac:源版本1.7需要目标版本1.7

    使用 IntelliJ IDEA 运行 JUnit 测试时 我得到 我该如何纠正这个问题 使用SDK 1 7 模块语言级别为1 7 Maven 构建工作正常 这就是为什么我相信IDEA配置问题 您很可能在此处从 Maven 导入了不正确的编
  • 注释处理器可以用于代码生成吗?

    假设我定义了一个名为 MyAnnotation 有一个班级X其声明为 MyAnnotation class X 现在在编译时我想检查所有带有注释的类 MyAnnotation并对更多需要在同一进程中编译的 java 源文件进行一些代码生成
  • Spring Security登录返回404

    我目前正在使用 Spring 框架开发我的博客 我正在实现 Spring Security 用于登录目的 一切都按预期进行 直到我提交始终返回 404 代码的登录凭据 这是我的 web xml 代码e
  • 如何使用 Tomcat 启用浏览器缓存静态内容(图像、css、js)?

    如何使用 Tomcat 启用浏览器缓存静态内容 图像 css js 首选的解决方案是编辑 spring MVC 配置文件或 web xml 尝试 改变值
  • 公共领域有哪些替代方案?

    我正在用 java 编写一个游戏 正如问题标题建议的那样 我在类中使用公共字段 暂且 据我所知 公共领域很糟糕 我有一些理解其中的原因 但如果有人能澄清为什么你不应该使用它们 那将不胜感激 问题是 从我所看到的来看 这似乎是合乎逻辑的 是使
  • Spring 非托管 bean 的依赖注入

    我有一个非托管的 JPA 域类 它是通过实例化的new操作员 UserAccount account new UserAccount userRepository save account In my UserAccount类 我有一个be
  • Hibernate SET 元素 order-by 子句

    我想知道 我可以平静地接受以下事实 当 fetch select 时 您可以在映射文件中的 SET 元素上设置 order by 属性 但如果您在创建查询时获取所有内容 这样安全吗 我的意思是 他们将结果放入 HashSet 中 我不认为这
  • 码头无故停止

    我需要经验丰富的码头用户的建议 我在负载均衡器 亚马逊云 后面维护着 2 台 Linux 机器 使用 Jetty 9 0 3 有时我的 Jetty 容器会被 Thread 2 无故关闭 同时地 显示以下日志并且容器无故停止 没有错误 没有例
  • 在JAVA中将数据写入.txt文件?

    我想知道是否是在JAVA中将计算的数据写入文本文件 我的 JAVA 代码是一个基于 GUI 的 gpa 计算器 我只想添加一个 JButton 和 ActionListener 它将类名 GPA 点和计算出的 GPA 写入 txt 文件 这
  • 使用 Spark SQL 时找不到 Spark Logging 类

    我正在尝试用 Java 进行简单的 Spark SQL 编程 在程序中 我从 Cassandra 表获取数据 将RDD into a Dataset并显示数据 当我运行spark submit命令 我收到错误 java lang Class
  • 从 Brixton.RC1 开始的 ZuulProxy 未传递授权标头

    从 Spring Cloud 切换时Brixton M5 to Brixton RC1我的 ZuulProxy 不再通过Authorization标头下游到我的代理服务 我的设置中有各种各样的角色 但大多数都相当简单 Authorizati
  • 自动将通配符导入重构为 IntelliJ 中的显式导入(适用于 Scala/Java)

    考虑下面的代码 是否可以让 IntelliJ 自动将每个通配符导入重构为显式导入 无论范围内使用什么 例如import scalatags JsDom all into import scalatags JsDom all ol li di
  • 在Java中将32bpp图像转换为16bpp图像

    如何使用 Java 库将 32bpp 图像 ARGB 转换为 16bpp 图像 ARGB 出于我的好奇 在像素级别 这种转换有什么作用 如果我有一个保存像素值 包含所有通道 的 int 值 那么在转换发生后该 int 会有什么不同 32 位
  • 如何在Java中添加两个“卡”的值?

    我正在开发一个项目来模拟二十一点游戏中的第一笔交易 到目前为止 程序创建了两张随机等级 ACE 到 KING 和随机花色的牌 我正在努力创建一个切换表或 if else 梯形图 将两张卡的附加值分配为可变分数 下面的代码从概念上代表了我想要

随机推荐

  • 《区块链助力粤港澳大湾区一体化发展报告(2022)》发布

    7月19日 中国 深圳 综合开发研究院主办的 数 链 大湾区 区块链助力粤港澳大湾区一体化发展报告 2022 发布会在深圳举行 报告提出 以区块链为代表的数字技术在破解粤港澳大湾区制度差异坚冰 支撑实体经济跨越和赋能社会治理创新等方面能够发
  • Mybatis对数据库数据的查询

    简单类型的映射 返回的是简单基本类型 接口中的定义 int getAdminCount 返回数据库总共还几条数据 xml中具体的实现
  • 解决Android App启动页背景图片拉伸变形问题

    为什么80 的码农都做不了架构师 gt gt gt 最近在开发的时候 在个别手机上遇到APP启动页背景图片被拉伸的情况 不多说 直接上图 然而我设置的背景图片是长这样 解决方法很简单 就是将主题中的单一背景图片以drawable的方式实现
  • SpringBoot世上最简洁的概况说明

    转自 SpringBoot世上最简洁的概况说明 下文笔者讲述SpringBoot的简介说明 如下所示 SpringBoot简介 SpringBoot是一个基于Spring框架开发的一个服务框架 使用SpringBoot可简化配置 达到开箱即
  • 从视频中提取音频数据,然后应用傅里叶对音频降噪(python)

    视频准备 QQ有热键 然后随便打开一个视频网站进行录屏 我选择B站 从视频中提取音频 需要安装包moviepy pip install moviepy 提取代码 from moviepy editor import video VideoF
  • Tomcat 目录列表···webloigc 目录列表···Weblogic修改端口号

    Tomcat web xml
  • PyCharm专业版破解

    0x01 下载JetbrainsCrack的jar包 下载链接 链接 百度云链接 提取码 8u4c 0x02 把JetbrainsCrack的jar包放入pycharm文件下的bin目录中 0x03 加上必要的文件代码 在bin目录下使用记
  • 题11:最短摘要的生成

    题目 Alibaba笔试题 给定一段产品的英文描述 包含M个英文单词 每个英文单词以空格分隔 无其他标点符号 再给定N个英文单词关键字 请说明思路并编程实现方法 String extractSurmary String descriptio
  • crout分解计算例题_化学方程式计算你真学会了吗?

    先看看视频 听听姚老师教的计算步骤吧 例题1 加热分解6 3g高锰酸钾 可以得到多少克氧气 分析 这道题是已知反应物的质量来求生成物的质量 即已知原料的质量求产品的质量 我们一起来看课本中的解题步骤 解 设加热分解6 3g高锰酸钾 可以得到
  • Java学习——String

    在上一篇我们讲到了一个必要重要的知识点 那就是Java中的类和对象 我们可以点击下面的链接来进行复习 CSDNJava学习 类和对象 上 AlwaysBeMyself的博客 CSDN博客CSDN 今天我们来讲下一个知识点 那就是Java中的
  • shift+空格,英文字母间距变大,半角全角转换

    shift 空格半角全角快捷键
  • 一文读懂舵机工作原理并运用(附代码)

    杂谈 自己拿到这一模块是也挺迷茫的 后来看了一些资料 也渐渐积累了些自己的理解 很多博文并没有将舵机讲明白 至少你待把PWM与角度如何换算讲清楚吧 所以笔者写这篇博文供大家学习掌握 如果你拿到一个舵机 该咋办 莫慌 往下看 第一步先要区分这
  • 【机器学习】树模型决策的可解释性与微调(Python)

    一 树模型的解释性 集成学习树模型因为其强大的非线性能力及解释性 在表格类数据挖掘等任务中应用频繁且表现优异 模型解释性对于某些领域 如金融风控 是极为看重的 对于树模型的解释性 我们常常可以通过输出树模型的结构或使用shap等解释性框架的
  • Jave Web 03 Cookie、Session

    1 会话 一个网站 如何证明你来过 客户端 服务端 服务端给客户端一个 信件 客户端下次访问服务端带上信件就可以了 cookie 服务器登记你来过了 下次你来的时候我来匹配你 seesion 2 保存会话的两种技术 1 cookie 客户端
  • Python爬虫入门教程!手把手教会你爬取网页数据

    其实在当今社会 网络上充斥着大量有用的数据 我们只需要耐心的观察 再加上一些技术手段 就可以获取到大量的有价值数据 这里的 技术手段 就是网络爬虫 今天就给大家分享一篇爬虫基础知识和入门教程 什么是爬虫 爬虫就是自动获取网页内容的程序 例如
  • 详解STM32 GPIO口中的推挽输出和开漏输出

    推挽输出 GPIO引脚线路经过两个保护二极管后 向上流向 输入模式 结构 向下流向 输出模式 结构 先看输出模式部分 线路经过一个由P MOS和N MOS管组成的单元电路 这个结构使GPIO具有了 推挽输出 和 开漏输出 两种模式 所谓的推
  • EduCoder_web实训作业--JavaScript学习手册九:字符串的常用方法

    第一关 请在此处编写代码 Begin var c a indexOf b var sum 0 while c gt 0 sum c c a indexOf b c b length return sum End 第二关 请在此处编写代码 B
  • jquery动态给下拉框select添加option

    jquery动态给下拉框select添加option 注意 有的框架如layui 需要额外添加form render 否则会失效
  • 华为ENSP的Stelnet、直连、串口连接、telnet连接登录

    华为ENSP设备登录的几种方式 一 直接打开终端窗口 启动设备后 直接双击设备即可 如下图所示 二 用ENSP中的PC连接线CTL到设备的console登录 步骤1 在左侧的连线中找到CTL线单击 如果没有CTL线说明ENSP的版本太低 如
  • 如何打印2019年每个月的第一个星期天的日期

    这是一个关于日期处理的题目 在这里我主要用了Calendar类的相关属性与方法 首先 我们来分析一下 我们可以从2019年1月1日 用while循环依次遍历 到2019年12月7日结束 每次加一天 利用if判断 满足在第一周且是周日的条件