Java中一周前一个月前时间计算方法

在java语言中,用如下方法获取系统时间:
Date date = new Date();
String year=new SimpleDateFormat("yyyy").format(date);
String month=new SimpleDateFormat("MM").format(date);
String day=new SimpleDateFormat("dd").format(date);这样是分别获取String形式的四位年两位月两位日。比如今天就是“2009”和“08”和“05”

当然也可以这样写:String dateString=new
SimpleDateFormat("yyyy-MM-dd").format(date);这样写就会获得“2009-08-05”的字符串。注意M大
写,其他小写。

如果要详细时间,括号中改成"yyyy-MM-dd hh-mm-ss"。HH大写为24小时制,小写为12小时制。
另外值得注意的一点是,在sql server数据库中,例如某字段time为smalldatetime数据格式,可以将它与字符串比较 比如:....where time>'20090604' 和:....where
time>'2009-06-04'
都是正确的。都是表示搜索2009年6月4日0点0时0分以后的信息。但是这个以字符串表示的时间必须是真实存在的,不可以出现'2009-02-29'
的状况。因为没有29日,在String向smalldatetime数据类型转换的时候发生异常。
但是在类似论坛发帖的功能中,常常会从数据库中获取一周前,一个月前的数据,我在JAVA中写了这样的方法,(貌似)是对的~有用的可以拿去用……

//获得一周前的日期

 public String lastWeek(){
Date date = new Date();
int year=Integer.parseInt(new SimpleDateFormat("yyyy").format(date));
int month=Integer.parseInt(new SimpleDateFormat("MM").format(date));
int day=Integer.parseInt(new SimpleDateFormat("dd").format(date))-6; if(day<1){
month-=1;
if(month==0){
year-=1;month=12;
}
if(month==4||month==6||month==9||month==11){
day=30+day;
}else if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
{
day=31+day;
}else if(month==2){
if(year%400==0||(year %4==0&&year%100!=0))day=29+day;
else day=28+day;
}
}
String y = year+"";String m ="";String d ="";
if(month<10) m = "0"+month;
else m=month+"";
if(day<10) d = "0"+day;
else d = day+""; return y+m+d;
}

//获得allMonth月前的日期,allMonth可以为任意值

 public String lastMonth(int allMonth) {
Date date = new Date();
int year=Integer.parseInt(new SimpleDateFormat("yyyy").format(date));
int month=Integer.parseInt(new SimpleDateFormat("MM").format(date))-allMonth;
int day=Integer.parseInt(new SimpleDateFormat("dd").format(date));
if(month <= ){
int yearFlag = (month*(-))/12 + 1;
int monthFlag = (month *(-))%;
year -= yearFlag;
month=monthFlag*(-) +;
}
else if(day>){
if(month==){
if(year%==||(year %==&&year%!=)){
day=;
}else day=;
}else if((month==||month==||month==||month==)&&day==){
day=;
}
}
String y = year+"";String m ="";String d ="";
if(month<) m = ""+month;
else m=month+"";
if(day<) d = ""+day;
else d = day+""; return y+m+d;
}

地址:http://www.cn-java.com/www1/bbs/viewthread.php?tid=34559

[转]Java中一周前一个月前时间计算方法的更多相关文章

  1. javascript 关于一周前一个月前的处理方法

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. Java获取当前日期的前一个月,前一天的时间

    Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DATE, -); //得到前一天 calendar.add(Cal ...

  3. Java | 在 Java 中执行动态表达式语句: 前中后缀、Ognl、SpEL、Groovy、Jexl3

    在一些规则集或者工作流项目中,经常会遇到动态解析表达式并执行得出结果的功能. 规则引擎是一种嵌入在应用程序中的组件,它可以将业务规则从业务代码中剥离出来,使用预先定义好的语义规范来实现这些剥离出来的业 ...

  4. Java中设置方法执行的超时时间java.util.concurrent.Future

    java.util.concurrent.Future Future代表一个异步计算的结果.它提供了方法来检查是否计算已经完成,还是正在计算而处于等待状态,并且也提供了获取计算结果 方法.当计算完成后 ...

  5. java中Thursday 05 September 2002类型时间的转化

    package config; import Java.text.DateFormat; import java.text.ParseException; import java.text.Simpl ...

  6. [python实用代码片段]python获取当前时间的前一天,前一周,前一个月

    python获取当前时间的前一天,前一周,前一个月. 实用python的datetime.timedelta方法,避免了有的月份是30和31等不同的情况. 获取前一个月的时间,方法实现:首先datet ...

  7. [置顶] java得到前一个月的年月日时分秒

    import java.util.Calendar; /** * 得到前一个月的年月日时分秒 * @author Mr.hu * 2013-6-28上午12:00:35 * Class Explain ...

  8. JAVA中JDK1.8的LocalDateTime日期类的操作方法

    LocalDateTime与Date相互转换参考:https://www.cnblogs.com/pxblog/p/13745972.html 关键类 Instant:瞬时时间. LocalDate: ...

  9. php获取前一天,前一个月,前一年的时间

    获取前一天的时间: $mytime= date("Y-m-d H:i:s", strtotime("-1 day")); 获取三天前的时间: $mytime= ...

随机推荐

  1. 461.汉明距离(c++实现)

    问题描述: 两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目. 给出两个整数 x 和 y,计算它们之间的汉明距离. 注意:0 ≤ x, y < 231. 示例: 输入: x = ...

  2. MDX Cookbook 03 - MDX 查询中负数,零和空值 NULL 的格式化处理

    FORMAT_STRING 属性在处理计算成员(通常是度量值成员)的时候会经常使用到,比如指定标准 Standard, 货币 Currency 或者 Percent 百分比格式.除此之外,还可以自定义 ...

  3. postgresql 函数获取多个字段的数字大小值

    1.GREATEST(n1,n2,n3,..........) 获取最大值 testdb=#SELECT GREATEST(,,,,,,,,,); +------------------------- ...

  4. List or delete hidden files from command prompt(CMD)

    In Windows, files/folders have a special attribute called hidden attribute. By setting this attribut ...

  5. 如果你喜欢python,那你迟早会喜欢上julia的!

    你可曾想过有那么一门语言: 这门语言能够有C语言一样的速度,Ruby一样得活力(dynamism).像homoiconic一样的语言,它像Lisp一样有宏,但是也像Matlab一样有显而易见.熟悉的数 ...

  6. SNF快速开发平台MVC-表格单元格合并组件

    1.   表格单元格合并组件 1.1.      效果展示 1.1.1.    页面展现表格合并单元格 图 4.1 1.1.2.    导出excel合并单元格 图 4.2 1.2.      调用说 ...

  7. Asp.Net T4模板生成三层架构

    1.T4 Editor安装 T4:根据模板生成文件,例如model等 vs中默认t4模板编码是没有提示和高亮的,需使用以下插件,免费的 https://t4-editor.tangible-engin ...

  8. GDB用法简要整理

    [时间:2017-05] [状态:Open] [关键词:gdb,调试,debug,用户手册] 使用gdb是需要在编译是指定-g命令,在可执行文件中添加符号信息. 1. 启动和退出 可以使用gdb gd ...

  9. MXNET:深度学习计算-模型参数

    我们将深入讲解模型参数的访问和初始化,以及如何在多个层之间共享同一份参数. 之前我们一直在使用默认的初始函数,net.initialize(). from mxnet import init, nd ...

  10. Javascript模版引擎简介

    回顾 Micro-Templating 出自John Resig 2008年的一片文章,以及其经典实现: // Simple JavaScript Templating // John Resig - ...