最近做项目有涉及需要获取指定日期或当前日期所在月份和周第一和最后一天,结合网上的资料和自己项目开发记录,记录下用到的这些方法。

目录

1.获取指定年份的第一天和最后一天

2. 获取指定日期月份第一天和最后一天

3.获取指定日期所在周的周一和周日

4.获取昨天、明天、及前N天、后N天


1.获取指定年份的第一天和最后一天

/*** 获取指定年份的第一天和最后一天***/
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar calendarMonth =Calendar.getInstance();
calendarMonth.setTime(new Date());  //修改成需要的日期
calendarMonth.add(Calendar.YEAR, 0);   // -1表示去年,0表示今年,1表示明年月,上下年份以此类型
calendarMonth.set(Calendar.DAY_OF_YEAR, calendarMonth.getActualMinimum(Calendar.DAY_OF_YEAR));
System.out.println(">>>> 第一天" + sdf.format(calendarMonth.getTime()));
calendarMonth.set(Calendar.DAY_OF_YEAR, calendarMonth.getActualMaximum(Calendar.DAY_OF_YEAR));
System.out.println(">>>> 最后一天 " + sdf.format(calendarMonth.getTime()));

2. 获取指定日期月份第一天和最后一天

        /*** 获取日期所在月度的第一天和最后一天*/SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Calendar calendarMonth =Calendar.getInstance();calendarMonth.setTime(new Date());  //修改成需要的日期calendarMonth.add(Calendar.MONTH, 0);   // -1表示上个月,0表示本月,1表示下个月,上下月份以此类型calendarMonth.set(Calendar.DAY_OF_MONTH, calendarMonth.getActualMinimum(Calendar.DAY_OF_MONTH));System.out.println("上月第一天:" + sdf.format(calendarMonth.getTime()));calendarMonth.set(Calendar.DAY_OF_MONTH, calendarMonth.getActualMaximum(Calendar.DAY_OF_MONTH));System.out.println("上月最后一天:" + sdf.format(calendarMonth.getTime()));

calendarMonth.add(Calendar.MONTH, 0);   // -1表示上个月,0表示本月,1表示下个月,上下月份以此类型

3.获取指定日期所在周的周一和周日

        /*** 获取日期所在周的第一天和最后一天*/Calendar calendarWeek =Calendar.getInstance();calendarWeek.setTime(new Date());calendarWeek.add(Calendar.DATE, 0 * 7);    // 0 表示当前周,-1 表示上周,1 表示下周,以此类推calendarWeek.setFirstDayOfWeek(Calendar.MONDAY); //以周一为首日calendarWeek.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);System.out.println("日期所在周第一天:" + sdf.format(calendarWeek.getTime()));calendarWeek.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);System.out.println("日期所在周最一天:" + sdf.format(calendarWeek.getTime()));

calendarWeek.add(Calendar.DATE, 0 * 7);    // 0 表示当前周,-1 表示上周,1 表示下周,以此类推

4.获取昨天、明天、及前N天、后N天

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Date date = sdf.parse("2021-02-02");Calendar calendar = Calendar.getInstance();calendar.setTime(date);   //改成你要获取的那个月份里面的任意一天//获取指定时间所在月份的第一天calendar.add(Calendar.DATE,-1);     //-1 表示往前一天,往前N天,只需把 -1 改成你要的天数System.out.println("获取昨天:" + sdf.format(calendar.getTime()));//获取指定时间所在月份的最后一天calendar.add(Calendar.DATE,1);      //1 表示往后一天,往后N天,只需把 1 改成你要的天数System.out.println("获取明天:" + sdf.format(calendar.getTime()));

注意 calendar.add(Calendar.DATE,-1);  这行代码,-1表示往前一天,1 表示往后一天,往前/后 N 天 只需要把 -1/1 改成你要的天数即可。

使用Calendar类获取指定日期所在年/月份、周第一天、最后一天相关推荐

  1. 获取指定日期所在周的每一天的日期(周一,周二,周三,周四,周五到周末 )

    最近项目用到,特此记录. public class Test {public static void main(String[] args) {System.out.println(getNeedDa ...

  2. 获取指定日期所在月的最后一个工作日

    java获取最后一个工作日 如: 2021年02月 最后一个工作日是26号 /*** 通过字符串创建日期* @param dateStr yyyy-MM-dd* @return 日期*/public ...

  3. JAVA实现获取指定日期所在的周的所有日期

    需求:获取指定日期所在的周的所有日期 思路:获取指定日期所在的周的第一天,即周一的日期,设置日历的日期为那一天,依次取七天的日期 实现: package com.day0405;import java ...

  4. php获得每个月第一天的时间,PHP获取指定日期所在月的第一天和最后一天几个例子...

    标题有点说不清楚了就是否PHP获取指定日期所在月的第一天和最后一天几个段程序了了,下文给各位总结一下吧. 示例代码  代码如下 复制代码 //获取指定日期所在月的第一天和最后一天 function G ...

  5. 获取指定日期之间的各个周和月

    2019独角兽企业重金招聘Python工程师标准>>> 日志格式化类 Date.class.php <?php class Datefmt{function __constru ...

  6. python输入日期计算天数_用python计算日期(1、返回指定日期所在的一周,2,计算一个日期的月份和天数加减)...

    放两个小轮子吧,欢迎测试bug,然后告诉我: 1.返回指定日期所在的一周 2,计算一个日期的月份和天数加减 # -*- coding: utf-8 -*- """ Cre ...

  7. Java获取指定日期所在周的周一和周日的日期

    原来开发里很少有时间相关的开发任务,Calendar日历类用的太少,随手写的记录一下. 需求:判断用户当周是否已经提交过数据,按周一至周日为一周期来算 public static void main( ...

  8. php 获取指定日期所在月份的最后一天

    php 获取指定月最后一天: <?php function getthemonth($date) { $firstday = date('Y-m-01', strtotime($date)); ...

  9. java获取指定日期所在的周一至周日的日期号数

    代码如下: /*** 通过传入的日期,获取所在周的周一至周日** @param time 时间*/public static List<String> getSpecifiedWeekLi ...

最新文章

  1. LeetCode Weekly Contest 27
  2. MySQL 服务端调优
  3. 父元素事件中禁止子元素的事件
  4. 【NOIP2005】过河
  5. 前端学习(1357) :模板配置
  6. Android之TextView属性详解
  7. 接收 go run main.go 后面的参数_厦门油泥水三相离心分离机功能和参数
  8. fetch 另一种ajax解决方案
  9. 关于本学期西南交通大学ACM-ICPC校集训队 训练计划(Beta 1.0)
  10. Origin无法修改语言为灰色
  11. win7访问服务器共享文件夹提示没有权限,win7系统无法访问共享文件夹提示权限不足的解决方法...
  12. 物联网常用无线模块 接收灵敏度及发射功率简化测量方法
  13. java山地自行车怎么看型号_怎么看捷安特山地车型号
  14. 服务器装32位还是64位系统,操作系统:32位和64位系统有何区别?
  15. javax.crypto.BadPaddingException Given final block not properly padded?
  16. What Is Time-series Data? 什么是时间序列数据?
  17. 相位解包裹(五)枝切法(Goldstein’s branch cut algorithm)
  18. 认生、内敛不等同于孤独症[图]
  19. 何为三网融合?---经典解释
  20. Tomcat 打印日志让你事半功倍

热门文章

  1. BSC网络测试环境部署
  2. 2015届求职经历(转)
  3. css实现双飞翼布局
  4. 【不求人】手机端内应用或网页根据apk/ipa内的scheme/包名唤起别的应用
  5. Airtest输入文本那点事
  6. 15分钟实战机器学习:验证码(CAPTCHA)识别
  7. Android ViewPager用法
  8. 百度世界发布渡鸦新品,软硬件结合更懂生活
  9. 斐波那契数列和的java编程
  10. mpaas 接入高德地图 持续定位不起作用