`
yadsun
  • 浏览: 180303 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

根据当前日期算前一年、前一月、前一天(java基础)

阅读更多
   问题的本身没有什么难度,但是要想一下子找到一个现成的方法还真不是那么容易,本来以为java.util.Date中会有方法结果找了半天没找到,最后还是在Calendar中找到了,记下别忘了!!

核心:使用Calendar的add(int field, int amount)方法
 Calendar ca = Calendar.getInstance();//得到一个Calendar的实例
 ca.setTime(new Date());   //设置时间为当前时间
 ca.add(Calendar.YEAR, -1); //年份减1
 Date lastMonth = ca.getTime(); //结果

同样,类似的,求前一月ca.add(Calendar.MONTH, -1),前一天ca.add(Calendar.DATE, -1)

=================补充=================
有朋友说“月份这样做是有问题的,比如当前时间是2009-12-31,你在月份上减1变成了2009-12-1”,我试了一下没有出现这样的问题,不过印象中好像确实有遇到过这样的情况,代码是怎么写的已经记不清了
Calendar ca = Calendar.getInstance();//得到一个Calendar的实例 
		ca.set(2009, 11, 31);//月份是从0开始的,所以11表示12月
		Date now = ca.getTime();
		ca.add(Calendar.MONTH, -1); //月份减1   
		Date lastMonth = ca.getTime(); //结果  
		SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
		System.out.println(sf.format(now));
		System.out.println(sf.format(lastMonth));

		打印出来的结果是: 2009-12-31
		                2009-11-30



希望踩的朋友也能留下宝贵批评意见,也能使我从中有所收获不断进步,不甚感激!


震撼手感 镭射防伪 Levi's钱包 李维斯钱包 软牛皮长款钱包
09新款¥Levi's李维斯牛皮钱包/卡包/男士钱包 情侣款 新年礼物
双冠信誉-诺基亚5800手机-触摸屏手机-大陆行货-全国联保2299.0元


16
6
分享到:
评论
11 楼 dongdong12345_ 2017-05-18  
感谢楼主,帮到了我
10 楼 raiha 2010-01-15  
基础知识+1
9 楼 pubx 2010-01-14  
我又试了一下,你这样写应该是对的!我之前说的是在调用set的情况下会这样。
8 楼 yadsun 2010-01-14  
wmbjhlj 写道
闰年

2004年3月30日
减去一个月会怎么样?

这种情况肯定考虑到了,不信你试试,我试了是对的2004-2-29
7 楼 wmbjhlj 2010-01-14  
闰年

2004年3月30日
减去一个月会怎么样?
6 楼 yadsun 2010-01-14  
pubx 写道
月份这样做是有问题的,比如当前时间是2009-12-31,你在月份上减1变成了2009-12-1哈!

我没有发现这样的问题啊,请贴出你的代码交流一下吧,顺便提醒如果是手动设值的话要注意一下月份是从0开始的
5 楼 pubx 2010-01-14  
月份这样做是有问题的,比如当前时间是2009-12-31,你在月份上减1变成了2009-12-1哈!
4 楼 conservatism 2010-01-14  
正好用得上,谢谢lz
3 楼 yadsun 2010-01-14  
不知道踩的朋友是什么心态??麻烦踩的朋友能留下只言片语,也能使我从中有所收获,不甚感激
2 楼 yadsun 2010-01-14  
kuchaguangjie 写道
j2se 基础知识

是基础但容易忘
1 楼 kuchaguangjie 2010-01-14  
j2se 基础知识

相关推荐

    Java 根据年月日,判断是一年中的第几天.rar

    Java 根据用户指定的某年某月某日,判断这一天是一年中的第几天,具体思路是:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。这是一个...

    输入某年某月某日,判断这一天是这一年的第几天

    输入某年某月某日,判断这一天是这一年的第几天 1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊  情况,闰年且输入月份大于3时需考虑多加一天。

    java代码中时间的处理

    java代码中,对时间的处理,如当前时间、前一天、前一个月、前一年等等,时间格式的改动等等。

    JAVA万年历课程设计报告.doc

    若是,令总天 数S=1,否则,用累加法计算出定义年到输入年之间的总天数,再把输入年的一月到 要输出的月份之间的天数累加起来,若该月是闰年中的月份并且该月还大于二月,再 使总天数加1,否则,不加,既算出从定义...

    java 经典习题.doc

    1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。 import java.util.Scanner; //题目:输入某年某月某日,判断这一天是这...

    Java课程设计实验报告及全部源码流程图.doc

    下面是程序运行效果截图: 日历主界面(可以实现每个月的日历,可以按年或按月前后翻动,能够显示当前日期 ,并能够选择背景图片): 备忘录主界面(实现备忘录的添加,及当前日历的显示): 备忘录主界面(实现...

    JAVA万年历课程设计报告(1).doc

    若是,令总天 数S=1,否则,用累加法计算出定义年到输入年之间的总天数,再把输入年的一月到 要输出的月份之间的天数累加起来,若该月是闰年中的月份并且该月还大于二月,再 使总天数加1,否则,不加,既算出从定义...

    java课程设计报告---万年历.doc

    " " " "2、实现日期与星期的查询 " "二、设计原始资料 " "1、显示信息:用户可以向前翻页查询前一个月的日期,也可以向后翻页查 " "询下一个月的日期。 " " " "2、定时提醒:用户可以针对某一天来添加,删除和编辑...

    50道JAVA基础编程训练+答案(全)

    判断这一天是这一年的第几天、9*9口诀、猴子吃桃问题、两个乒乓球队组队、菱形、2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和、求200!大数阶乘、回文数、矩阵对角线元素之和、现输入一个数,要求按...

    C# 最全的日期正则表达式,没有之一

    公历的平年只有365日,比回归年短约0.2422 日,每四年累积约一天,把这一天加于2月末(即2月29日),使当年时间长度变为366日,这一年就为闰年。 需要注意的是,现在的公历是根据罗马人的“儒略历”改编而得。由于...

    Java经典编程题(附答案)

    题目:输入某年某月某日,判断这一天是这一年的第几天? 1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且 输入月份大于3时需考虑多加一天。 【程序15】 ...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    2011年1月出版。 全书压缩打包成4部分,这是第3部分 注:本系列图书的第I、II卷再版时均相应改名为《xxx开发实例大全》(基础卷)及(提高卷),但内容基本无变化,需要的童鞋可自由匹配查找。 内容简介  《Java开发...

    最新JAVA编程题全集_50题及答案

    写一个函数,例如:给你的 a b c 则输出 abc acb bac bca cab cba import java.util.ArrayList; import java.util.List; public class NumTest { public static void main(String[] args) { String s="ABCD";...

    适合于初学者的java小程序之2

    个数如果恰好等于它的...输入某年某月某日,判断这一天是这一年的第几天?输入三个整数x,y,z,请把这三个数由小到大输出。输出9*9口诀。有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

    TimeWAV:根据时间(天,周,月,年)缝合或合并WAV音频文件

    时间WAV 根据时间(天,周,月,年)缝合或合并WAV音频文件请参阅以下原始WAV项目。 我目前正在修改上述项目,使其功能更加丰富。 而且,回头看一下,那段代码太糟糕了#去做重构深度嵌套的代码创建界面必要时重构类...

    antlr4权威指南

    使用ANTLR之后,我在一天之内就完成了整个编译器前端的开发工作,从而能够迅速开始处理真正的业务逻辑。从那时起,我就被它强大的功能所深深吸引。简而言之,ANTLR能够解决别的工具无法解决的问题。  软件改变了...

    oracle数据库经典题目

    一、填空 1.在多进程Oracle实例系统中,进程分为用户进程、后台进程和服务进程。 2.标准的SQL语言语句类型可以分为:数据定义语句(DDL)、数据操纵语句(DML)和数据控制语句(DCL)。 3.在需要滤除查询结果中重复的行...

Global site tag (gtag.js) - Google Analytics