java中年月日的加减法,年月的加减法使用
本文为博主原创,未经允许不得转载:
java计算两个年月日之间相差的天数:
public static int daysBetween(String smdate,String bdate) throws ParseException{
int daysInterval=0;
if(StringUtils.isNoneBlank(smdate)&&StringUtils.isNoneBlank(bdate)){
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
cal.setTime(sdf.parse(smdate));
long time1 = cal.getTimeInMillis();
cal.setTime(sdf.parse(bdate));
long time2 = cal.getTimeInMillis();
long between_days=(time2-time1)/(1000*3600*24);
daysInterval = Integer.parseInt(String.valueOf(between_days));
}
return daysInterval;
}
java计算年月之间的加法和减法:
public static void main(String[] args) throws ParseException
{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
String time=sdf.format(new Date());
Calendar cd = Calendar.getInstance();
cd.setTime(sdf.parse(time));
cd.add(Calendar.MONTH, 0);//往前一月,,如果是整数则进行加法,如果是负数,则进行减法
Date date=cd.getTime();
String endTimeString = sdf.format(date);
cd.add(Calendar.MONTH, -7);//往后7个月
String startTimeString = sdf.format(cd.getTime());
String startTime = startTimeString.replaceAll("-", "");//格式日期yyyyMM
String endTime = endTimeString.replaceAll("-", "");//格式日期yyyyMM
System.out.println(startTime);
System.out.println(endTime);
}
获取一个月中的第一天和最后一天:
public static void main(String[] args)
{
// 获取当前年份、月份、日期
Calendar cale = null;
cale = Calendar.getInstance();
// 获取当月第一天和最后一天
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
// 获取前月的第一天
cale = Calendar.getInstance();
cale.add(Calendar.MONTH, -6);
cale.set(Calendar.DAY_OF_MONTH, 1);
String startTimeString = format.format(cale.getTime());
// 获取前月的最后一天
cale = Calendar.getInstance();
cale.add(Calendar.MONTH, 0);
cale.set(Calendar.DAY_OF_MONTH, 0);
String endTimeString = format.format(cale.getTime());
String startTime =startTimeString.replaceAll("-", "");//格式日期yyyyMMdd
String endTime =endTimeString.replaceAll("-", "");//格式日期yyyyMMdd
String layerTime = startTimeString +"至"+endTimeString;
System.out.println(layerTime);
}
计算两个月份之间相差的月份个数:
public int getMonthInterval(String str1,String str2) throws ParseException{
int monthLength = 0;
if(StringUtils.isNoneBlank(str1)&& StringUtils.isNoneBlank(str2)){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
Calendar bef = Calendar.getInstance();
Calendar aft = Calendar.getInstance();
bef.setTime(sdf.parse(str1));
aft.setTime(sdf.parse(str2));
int result = aft.get(Calendar.MONTH) - bef.get(Calendar.MONTH);
int month = (aft.get(Calendar.YEAR) - bef.get(Calendar.YEAR)) * 12;
monthLength = Math.abs(month + result);
}
return monthLength;
}
java对当前月份进行传值计算:
public static Map<String,Object> getMonth(int length) throws ParseException{
Map<String, Object> map = new HashMap<>();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
String time=sdf.format(new Date());
Calendar cd = Calendar.getInstance();
cd.setTime(sdf.parse(time));
cd.add(Calendar.MONTH, -length);//往前一月
Date date=cd.getTime();
String monthFormat= sdf.format(date);
// System.out.println(monthFormat);
String monthString =monthFormat.replaceAll("-", "");//格式日期yyyyMM
map.put("monthFormat", monthFormat);
map.put("monthString", monthString);
return map;
}
谢谢点赞!
java中年月日的加减法,年月的加减法使用的更多相关文章
- JAVA中判断年月日格式是否正确(支持判断闰年的2月份)
一.先说一下年月日(yyyy-MM-dd)正则表达式: 1.年月日正则表达式:^((19|20)[0-9]{2})-((0?2-((0?[1-9])|([1-2][0-9])))|(0?(1|3|5| ...
- 2018.2.2 java中的Date如何获取 年月日时分秒
package com.util; import java.text.DateFormat; import java.util.Calendar; import java.util.Date; pub ...
- Java中Date各种相关用法
Java中Date各种相关用法(一) 1.计算某一月份的最大天数 Java代码 Calendar time=Calendar.getInstance(); time.clear(); time.set ...
- Java中的二进制及基本的位运算
Java中的二进制及基本的位运算 二进制是计算技术中广泛采用的一种数制.二进制数据是用0和1两个数码来表示的数.它的基数为2,进位规则是"逢二进一",借位规则是"借一当二 ...
- 从源码浅析Java中的Lock和AbstractQueuedSynchronizer
在之前的文章中我也曾经介绍过Lock,像ReentrantLock(可重入锁)和ReentrantReadWriteLock(可重入读写锁),这些所我们在说的时候并没有详细的说明它们的原理,仅仅说明了 ...
- 四则运算法则在Java中的实现
软件工程的课程已经上过有一段时间了,前段时间由于比较忙着考试,所以关于四则运算的代码一直没有实现.同时由于近来一段时间一直在自学java,因为C++虽然也是面向对象,而且可以开发很多软件或者程序,但是 ...
- 转:Java中的cas
引自:https://blog.csdn.net/mmoren/article/details/79185862 本篇的思路是先阐明无锁执行者CAS的核心算法原理然后分析Java执行CAS的实践者Un ...
- 【java】JDK1.8时间日期库 新特性 所有java中时间Date的使用
除了lambda表达式,stream以及几个小的改进之外,Java 8还引入了一套全新的时间日期API,在本篇教程中我们将通过几个简单的任务示例来学习如何使用java 8的这套API.Java对日期, ...
- Java中六大时间类的使用和区别
关于java中六个时间类的使用和区别 java.util.Date java.sql.Date java.sql.Time java.sql.Timestamp java.text.SimpleD ...
随机推荐
- 用laravel dingo api插件库创建api的一些心得笔记
用laravel创建api是很多大型项目正在使用的方法,一般他们都是用dingo api插件库来开发自己的api.以下是ytkah用dingo api的一些心得,有需要的朋友可以关注一下 1.安装 因 ...
- [kx]宇宙-银河
行星/恒星/卫星的区分 目前太阳系内有8颗行星,分别是:水星.金星.地球.火星.木星.土星.天王星.海王星. 参考 恒星是自发光,而行星(行星通常指自身不发光,其公转方向常与所绕恒星的自转方向相同.) ...
- Linux sendmail
最近在写自动化巡检脚本,想着怎么预警后自动发送邮件报警. 首先下载最新版本mailx-12.4.tar.bz2 # wget http://sourceforge.net/projects/heirl ...
- php深入学习
关于PHP程序员解决问题的能力 http://rango.swoole.com/archives/340 深入理解PHP内核 by xuhong大牛 http://www.php-internals. ...
- Intro to Python for Data Science Learning 4 - Methods
Methods From:https://campus.datacamp.com/courses/intro-to-python-for-data-science/chapter-3-function ...
- 20154312 曾林 EXP7 网络欺诈防范
目录 1.基础问题回答 ----1.1.通常在什么场景下容易受到DNS spoof攻击 ----1.2.在日常生活工作中如何防范以上两攻击方法 2.实践总结与体会 3.实践过程记录 ----3.1.简 ...
- SLF4J和log4j的使用
概念 SLF4J:即简单日志门面(Simple Logging Facade for Java),不是具体的日志解决方案,它只服务于各种各样的日志系统.按照官方的说法,SLF4J是一个用于日志系统的简 ...
- 数据仓库原理<4>:联机分析处理(OLAP)
本文转载自:http://www.cnblogs.com/hbsygfz/p/4762085.html 1. 引言 本篇主要介绍数据仓库中的一项重要分析技术——联系分析处理(OLAP). 在第一篇笔者 ...
- python 正则表达式匹配ip
>>> re.match(r'^(([1-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}([1-9]|[1-9]\d|1\d\d|2[0-4]\d| ...
- 彻底明白Flink系统学习5:window、Linux本地安装Flink
http://www.aboutyun.com/thread-26393-1-1.html 问题导读 1.如何在window下安装Flink? 2.Flink本地安装启动命令与原先版本有什么区别? 3 ...