JAVA 获取当前月第一天,最后一天;上个月第一天,最后一天;下个月第一天,最有一天。

如何在Java 8中获取一个月的第一天和最后一天 如何在Java 8中获取一个月的第一天和最后一天、传入一个年月转为时间区间,该月的第一天和最后一天 阅读详情
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.Map;

/**
 * 
 * 功能: 获取当前月第一天,最后一天;上个月第一天,最后一天;下个月第一天,最有一天。
 * 作者: SealZhang & peter
 * 时间: 2015-1-16
 */

public class DateFirstLast {
	 private static Map<String, String> getDate(String date1) throws ParseException {
		  	SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
			Date date = df.parse(date1); 
		  
	        Calendar calendar1 = Calendar.getInstance();  // 使用默认时区和语言环境获得一个日历。
	        Calendar calendar2 = Calendar.getInstance();  
	        Calendar calendar3 = Calendar.getInstance();
	       
	        calendar1.setTime(date);  //setTime(Date date) 使用给定的Date设置此Calendar的时间。 
	        calendar2.setTime(date);	 
	        calendar3.setTime(date);
	        
	        calendar1.add(Calendar.MONTH, -1);    //上A
	        Date Date1 = calendar1.getTime();
	        
	        calendar2.add(Calendar.MONTH, 0);     //<span style="font-family: Arial, Helvetica, sans-serif;">中C</span>

	        Date Date2 = calendar2.getTime();
	        
	        calendar3.add(Calendar.MONTH, 1);     //<span style="font-family: Arial, Helvetica, sans-serif;">下B</span>

	        Date Date3 = calendar3.getTime();
	        
	      
	        /**
	         * 上月第1天
	         */
                //GregorianCalendar 是 Calendar 的一个具体子类
	        GregorianCalendar gc1 = (GregorianCalendar) Calendar.getInstance();  
	        gc1.setTime(Date1);
	        gc1.set(Calendar.DAY_OF_MONTH, 1);     	//设置该月的第一天
	        String a_day_first = df.format(gc1.getTime());
	        StringBuffer str_a = new StringBuffer().append(a_day_first).append(" 00:00:00");    //拼接 时分秒
	        a_day_first = str_a.toString();
	        System.out.println("上月的第一天\t"+a_day_first);
	        
	        /**
	         * 上月最后一天
	         */
	        calendar1.add(Calendar.MONTH, 1);    	 //加一个月
	        calendar1.set(Calendar.DATE, 1);         //设置为该月第一天
	        calendar1.add(Calendar.DATE, -1);    	 //再减一天即为上个月最后一天
	        String a_day_last = df.format(calendar1.getTime());
	       StringBuffer endStra = new StringBuffer().append(a_day_last).append(" 23:59:59");//拼接 时分秒
	        a_day_last = endStra.toString();
	        System.out.println("上月最后一天\t"+a_day_last);
	        
	        /**
	         * 本月第一天
	         */
	        GregorianCalendar gc2 = (GregorianCalendar) Calendar.getInstance();
	        gc2.setTime(Date2);
	        gc2.set(Calendar.DAY_OF_MONTH, 1);          //设置该月的第一天
	        String b_day_first = df.format(gc2.getTime());
	        StringBuffer str_b = new StringBuffer().append(b_day_first).append(" 00:00:00");//拼接 时分秒
	        b_day_first = str_b.toString();
	        System.out.println("本月的第一天\t"+b_day_first);
	        
	       /**
	         * 本月最后一天
	         */
	        calendar2.add(Calendar.MONTH, 1);    	 //加一个月
	        calendar2.set(Calendar.DATE, 1);         //设置为该月第一天
	        calendar2.add(Calendar.DATE, -1);    	 //再减一天即为上个月最后一天
	        String b_day_last= df.format(calendar2.getTime());
	        StringBuffer endStrb = new StringBuffer().append(b_day_last).append(" 23:59:59");   //拼接 时分秒
	        b_day_last = endStrb.toString();
	        System.out.println("本月最后一天\t"+b_day_last);
	        
	        /**
	         * 下月第1天
	         */
	        GregorianCalendar gc3 = (GregorianCalendar) Calendar.getInstance();
	        gc3.setTime(Date3);
	        gc3.set(Calendar.DAY_OF_MONTH, 1);
	        String c_day_first = df.format(gc3.getTime());
	        StringBuffer str_c = new StringBuffer().append(c_day_first).append(" 00:00:00");//拼接 时分秒
	        c_day_first = str_c.toString();
	        System.out.println("下月的第一天\t"+c_day_first);
	        
	        /**
	         * 下月最后1天
	         */
	        calendar3.add(Calendar.MONTH, 1);    	 //加一个月
	        calendar3.set(Calendar.DATE, 1);         //设置为该月第一天
	        calendar3.add(Calendar.DATE, -1);    	 //再减一天即为上个月最后一天
	        String c_day_last= df.format(calendar3.getTime());
	        StringBuffer endStrc = new StringBuffer().append(c_day_last).append(" 23:59:59"); //拼接 时分秒
	        c_day_last = endStrc.toString();
	        System.out.println("下月最后一天\t"+c_day_last);
	        
	        Map<String, String> map = new HashMap<String, String>();
	       
	        map.put("a_day_first", a_day_first);
	        map.put("a_day_last", a_day_last);
	        
	        map.put("b_day_first", b_day_first);
	        map.put("b_day_last", b_day_last);
	        
	        
	        map.put("c_day_first", c_day_first);
	        map.put("c_day_last", c_day_last);
	        return map;
	 }
	 
	public static void main(String[] args) throws ParseException {
		 Map<String, String> map  =   getDate("2015-01-16");
		 System.out.println(map);
		 
	}
}
</pre><pre name="code" class="java">

上月的第一天 2014-12-01
上月最后一天 2014-12-31
本月的第一天 2015-01-01
本月最后一天 2015-01-31
下月的第一天 2015-02-01
下月最后一天 2015-02-28


以上代码有哪些地方可以优化的,请大家指教!

【数据分析/商业分析】面试题整理——SQL专题 数据分析\商业分析—面试题整理 自己总结的SQL类的面试题 文章目录数据分析\商业分析—面试题整理1.新增用户2.活跃用户数量3.连续登录4.次(n)日留存5.每个科目下分数最高的两名学生 阅读详情

相关推荐

机械臂开发必备:KDL库正逆解与动力学实战指南

在机器人算法领域,运动学与动力学计算是机械臂控制、仿真与轨迹规划的核心基础。正运动学描述关节空间到笛卡尔空间的映射,逆运动学则需要求解复杂的非线性方程,工程实现时常面临数值稳定性与调试效率的挑战。KDL(Kinematics and Dynamics Library)作为ROS生态中广泛使用的开源库,提供了统一的模型描述与高效求解器,将正逆解、雅可比矩阵及动力学参数计算封装为简洁接口,大幅降低开发门槛。无论是机械臂的笛卡尔空间轨迹跟踪,还是基于动力学模型的前馈控制,KDL都展现出强大的工程价值。本文从运动学

weixin_33860528的博客 2505

获取下月第一天_Date之获取月的第一天和最后一天

public static Date getMonthDeviation(int n ) {Calendar calendar = Calendar.getInstance();//获取当前日期calendar.add(Calendar.MONTH, n);//n代表和本月偏移 0本月、1后一月,-1前一月calendar.set(Calendar.DAY_OF_MONTH,1);//设置为1号,...

weixin_39994438的博客 2262

从理论到实践:利用FilterSolutions高效设计7阶椭圆低通滤波器

本文详细介绍了如何利用FilterSolutions软件高效设计7阶椭圆低通滤波器。文章从理论入手,对比了巴特沃斯、切比雪夫等经典滤波器特性,阐述了在要求高衰减陡度(如62dB抑制)和严格通带波纹(0.2dB)时,椭圆滤波器是最优选择。通过分步实战教程,指导读者完成从软件参数设置、性能验证到实际电路布局与调试的全过程,助力射频与高速数字信号处理工程师将理论转化为可靠设计。

jupi8的博客 559

Java获取当前时间的上一个月和下一个月,第一天和最后一天

【代码】Java获取当前时间的上一个月和下一个月,第一天和最后一天。

dhklsl的专栏 8539

CTF实战:手把手教你用Python破解转轮机加密(附完整脚本)

本文详细介绍了如何使用Python逆向破解转轮机加密,特别针对CTF比赛中的Crypto类题目。通过解析转轮机加密原理、实战Python脚本编写及调试技巧,帮助参赛者快速掌握破解方法,提升在攻防世界等CTF比赛中的解题效率。

silver的专栏 1115

第78章:PCL Multiple View ICP 多视角配准

多视角配准(Multiple View ICP)是迭代最近点(ICP)算法的扩展,旨在处理多视角的点云数据配准问题。传统的ICP算法主要用于两幅点云之间的配准,而多视角配准则处理来自多个视角或不同时间采集的多个点云数据的配准任务。在实际应用中,多个传感器或多个拍摄角度获得的点云数据常常需要进行联合配准。这些点云可能由于不同的视角、拍摄位置或时间差异而存在位置和旋转的差异。多视角配准的目标是根据多个点云之间的匹配关系,找到它们的相对变换,使得这些点云能够合并成一个统一的三维模型。

yumeiguo的博客 158

获取指定月份的下一个月的第一天和最后一天

getDateNew(year,month) {//获取每个月的最后一天//获取年份//获取月份//需要获取此月最后一天的日期//0-11,下一个月//设置当前日期为下个月的1号//1-31//下个月一号对应毫秒//下个月一号减去一天,正好是这个月最后一天},

weixin_43824848的博客 505

ESP32-C3入门教程 环境篇②——Windows开发环境准备

文章目录一、注意事项二、下载ESP-IDF工具安装器三、安装内容四、详细安装步骤报错处理 一、注意事项 请注意 ESP-IDF 和 ESP-IDF 工具的安装路径不能超过 90 个字符,安装路径过长可能会导致构建失败。 Python 或 ESP-IDF 的安装路径中一定不能包含空格或括号。 除非操作系统配置为支持 Unicode UTF-8,否则 Python 或 ESP-IDF 的安装路径中也不能包括特殊字符(非 ASCII 码字符、中文字符) 二、下载ESP-IDF工具安装器 ESP-IDF Win

5242

java 获取指定日期下月的第一天

java 获取指定日期的下月的第一天时多少:如传入20210323,则返回20210401,如传入20211221,则返回20220101 public static String getFirstDayofNextMonth(String datestr, string format){ SimpleDateFormat sdf = new SimpleDateFormat(format); try { Date date = sdf.parse (datestr); Calendar ca

小先生编程 3955

3、利用预训练卷积神经网络进行特征提取

本文介绍了如何使用预训练的卷积神经网络(如VGG16)进行图像特征提取,并将提取的特征存储在HDF5数据集中,以便后续用于机器学习模型的训练。文章详细阐述了特征提取的原理、HDF5数据格式的优势、HDF5DatasetWriter类的实现、特征提取流程的代码实现以及实际应用案例。通过该方法,可以在多种图像数据集上高效构建高精度的分类模型。

z2a3b4c5d的博客 112

Autosar诊断实战系列23-NRC优先级解析

NRC分类,优先级判断逻辑及测试注意事项介绍。

initiallizer的博客 2617

js获取指定日期的下一个月的第一天和最后一天

js获取指定日期的下一个月的第一天和最后一天

_NIXIAKF的博客 2134

OpenHarmony深度定制:从系统到模块的全景剖析与自定义模块实战

目标:在中新增一个算法库,让产品可直接调用。关闭不用的 20+ 系统部件,ROM 缩小 50 %;为自家芯片新增专用驱动模块,快速点亮开发板;内将核心算法库以部件形式集成,实现商业闭源。万物互联时代,差异化才是护城河。

m0_67505153的博客 1031

java 获取上个月最后一天,本月最后一天,下月第一天,每个自然月的第一天和最后一天

采用joda-Time获取。 一:以下引入的jar包是:import org.joda.time.LocalDate。 1.获取上个月的最后一天: LocalDate lastDayOfPreviousMonth = LocalDate.now().minusMonths(1).dayOfMonth().withMaximumValue(); 2.获取当前月...

l_s_r的博客 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

java获取指定和当前月第一天和最后一天,上个月第一天和最后一天

public static void main(String[] args) { //注意MM 别写成小写的mm了 SimpleDateFormat sm = new SimpleDateFormat("yyyy-MM-dd"); int startyear=2018; int lastmonth=1; //获取指定年月第一天 Calendar cal...

行者彡的博客 2万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Java使用LocalDate获取某个月的第一天和最后一天日期

Java使用LocalDate或LocalDateTime获取某个月的第一天和最后一天日期

qq_39691492的博客 4万+

Java获取指定日期前一天、后一天,当月第一天、当月最后一天

获取前一天、后一天的时间

qq_44384533的博客 2万+

java获取当前月份的第一天_java获取当前月第一天和最后一天,上个月第一天和最后一天...

SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-dd");//获取前月的第一天Calendarcal_1=Calendar.getInstance();//获取当前日期cal_1.add(Calendar.MONTH,-1);cal_1.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月...

weixin_42609225的博客 4935

使用Calendar获取当前年份 月份,当月第一天和最后一天,上个月第一天和最后一天

package util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; public class Test { public static void main(String[] args) throws ParseException { // 获取当前年份、月份、日期 Calendar cal = Calendar

Smile yourlife 2327

Java获取本月和上月第一天和最后一天

//本月 @Test public void test01(){ SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd"); Calendar c = Calendar.getInstance(); c.add(Calendar.MONTH, 0); c.set(Calendar.DAY_OF_MONTH,1);//1:本月第...

wucanyang305的博客 2万+

java获取当前月和周的第一天和最后一天

获取当前周的第一天: public static Date getFirstDayOfWeek(Date date) { Calendar cal = Calendar.getInstance(); try { cal.setTime(date); cal.set(Calendar.DAY_OF_WEEK, 2); } catch (Ex...

不积跬步无以至千里,不积小流无以成江河 3770

java获取当前月第一天和当前月最后一天

Java获取当前月第一天和当前月最后一天 作为一名刚入行的小白,你可能会对如何使用Java获取当前月的第一天和最后一天感到困惑。别担心,这篇文章将为你提供详细的步骤和代码示例,帮助你轻松实现这个功能。 流程概述 首先,我们来概述一下获取当前月第一天和最后一天的流程。以下是整个流程的步骤: 步骤 描述 1 获取...

weixin_35649491的博客 1700

java获取当前月第一天和最后一天,上个月第一天和最后一天

java获取当前月第一天和最后一天,上个月第一天和最后一天 SimpleDateFormat format = new SimpleDateFormat(“yyyy-MM-dd”); //获取前月的第一天 Calendar cal_1=Calendar.getInstance();//获取当前日期 cal_1.add(Calendar.MONTH, -1); ...

Tyloo_wdnmd的博客 723

localdatetime 后一天_LocalDateTime 获取上个月最后第一天及最后一天

有个需求 如果获取本月一号到昨天 如果今天是1号 获取上月月底到月末 实现如下public static void main(String[] args) {// 如果是1号//LocalDate localDate = LocalDate.of(2020,11, 1);LocalDate localDate = LocalDate.of(2020,11, 11);LocalDateTime ...

weixin_39820226的博客 3902

postgresql获取指定时间(如当月第一天、最后一天、下个月的第n天等)

问题现象: 今天在项目开发中遇到了一个需求,在编写某个功能时,需要使用到基于某个时间(如当前时间),去获取本月第一天或下个月的第一天的数据. 问题分析: 通过查询资料可以得知,要实现这个需求并不容易,在sql语句中就能很好的获取到,这里我使用的是postgresql数据库,其他数据库应该也适用,或者是使用了差不多的逻辑. 1.首先是获取当前时间: select now(); //返回值:当前年月日、时分秒,且秒保留6位小数。 select ...

weixin_42585386的博客 1万+

java获取当前月第一天和最后一天

获取当前月第一天: /** * 获取当前月第一天 * @param month * @return */ public static String getFirstDayOfMonth(int month) { Calendar calendar = Calendar.getInstance(); // 设置月份 calendar.set(Calendar.MONTH, month - 1);...

u011250186的博客 7613

Java8(四):获取当前月和上个月的第一天、最后一天

获取上个月第一天和最后一天: LocalDateTime date = LocalDateTime.now().minusMonths(1); LocalDateTime firstday = date.with(TemporalAdjusters.firstDayOfMonth()); LocalDateTime lastDay = date.with(Tem...

风之子 4241
下一篇: Spring Boot 集成 CXF创建多个Endpoint的WebService服务(完整版)
Seal-Zhang
博客等级 码龄16年 4粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值