`
zithan
  • 浏览: 175756 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

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

阅读更多
Java中一周前一个月前时间计算方法
2009-11-30 11:10
在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(new 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;
}

//获得一月前的日期
public String lastMonth(){
   Date date = new Date();
   int year=Integer.parseInt(new SimpleDateFormat("yyyy").format(date));
   int month=Integer.parseInt(new SimpleDateFormat("MM").format(date))-1;
   int day=Integer.parseInt(new SimpleDateFormat("dd").format(date));

   if(month==0){
    year-=1;month=12;
   }
   else if(day>28){
    if(month==2){
     if(year%400==0||(year %4==0&&year%100!=0)){
      day=29;
     }else day=28;
    }else if((month==4||month==6||month==9||month==11)&&day==31)
    {
     day=30;
    }
   }
   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;
}

分享到:
评论

相关推荐

    JAVA时间工具类(计算法定工作日工时等)

    JAVA时间工具类(计算法定工作日工时):计算某个日期加上几个工作日后的一个工作日期(除周末和法定节假日),计算某个日期后一天的工作日期(除周末和法定节假日),计算两个日期的真实工作日(除周末和法定节假日),...

    通过指定的时间段获得整年、整月、整周整日、整小时的数据

    运用java1.8的LocalDateTime和TemporalAdjusters等方法,通过指定的时间段获得整年、整月、整周整日、整小时的数据,并且还可以根据月、周、日、小时进行细化分隔,绝对的可以运行。

    用程序输出“当前时间是XXXX年XX月XX日XX时XX分XX秒(第XX周,周X)

    自学Date类(java.util.Date)和SimpleDateFormat类,用程序输出“当前时间是XXXX年XX月XX日XX时XX分XX秒(第XX周,周X)” 2 比较String与StringBuffer、StringBuilder的自增速度。方法:在自增前记录系统时间,...

    java范例开发大全

    实例1 开发第一个Java程序 7 第2章 Java基础类型与运算符(教学视频:39分钟) 9 2.1 基础类型 9 实例2 自动提升 9 实例3 自动转换 10 实例4 常用基础类型之强制转换 11 2.2 运算符 12 实例5 算术运算符 12 实例6 ...

    java范例开发大全源代码

     实例1 开发第一个Java程序 7  第2章 Java基础类型与运算符(教学视频:39分钟) 9  2.1 基础类型 9  实例2 自动提升 9  实例3 自动转换 10  实例4 常用基础类型之强制转换 11  2.2 运算符 12 ...

    Java范例开发大全 (源程序)

     实例1 开发第一个Java程序 7  第2章 Java基础类型与运算符(教学视频:39分钟) 9  2.1 基础类型 9  实例2 自动提升 9  实例3 自动转换 10  实例4 常用基础类型之强制转换 11  2.2 运算符 12  实例5...

    基于java的员工健康管理系统含文档

    根据员工的相关信息,计算其每天所需热量,给出一周的推荐菜单。 (3)员工健康日志: 用户可以记录自己健康日记,记录每一天的睡眠,饮酒,吸烟,血压,体重等情况。 (4)员工体检管理: 员工可通过该平台查询每次...

    设计一个停车场的管理

    按小时计算停车费用的方法(停车在36小时之内)(计费方法:凌晨6点开始-至晚上8点:第一个15分钟免费,六小时内每15分钟1.5元,6后小时每15分钟2块,晚上8点以后每小时0.5元钱) 按月计费的方法(每月800元) ...

    Java范例开发大全(全书源程序)

    实例1 开发第一个Java程序 7 第2章 Java基础类型与运算符 实例2 自动提升 9 实例3 自动转换 10 实例4 常用基础类型之强制转换 11 2.2 运算符 12 实例5 算术运算符 12 实例6 关系运算符 13 实例7 逻辑...

    21天学通Java_6

    只需21天的时间,便可具备使用Java,-发运行在计算机中的应用程序、运行在Web服,务器中的se rvlet,以及通过浏览器启动的Java Web Start应用程序的知识和技能。 无需任何编程经验。按本书精心组织的21个课程进行学习...

    java范例开发大全(pdf&源码)

    实例1 开发第一个Java程序 7 第2章 Java基础类型与运算符(教学视频:39分钟) 9 2.1 基础类型 9 实例2 自动提升 9 实例3 自动转换 10 实例4 常用基础类型之强制转换 11 2.2 运算符 12 实例5 算术运算符 12 实例6 ...

    PayrollApplication:Java2周2

    薪资申请Java2周2 这是我为 JAVA PROGRAMMING II 分配的第一个个人作业。 以下是任务要求: 雇主正在寻找一种更简单的方法来跟踪员工薪酬。 设计、实施、测试和调试应用程序来计算员工的每周工资。 如果雇员每周工作...

    学生信息管理系统java课程设计报告.doc

    在设计中我们发现这样一个事实,一个用户或管理员在登陆这个网站时一般来讲只对 该网站的部分内容感性趣,而且这种兴趣会持续一段时间。这点启发了我们,如果能根 据用户活管理员的喜好为不同的用户显示其个性化的...

    Java实验报告(5).doc

    显示任意一个月份的日历(&gt;1900)(一周一行,要有月名、表头和横线。 按列右对齐, 用String.format("%1$ 4d",intNumber)可以将任意整数intNumber格式化成前面补"空格"的4位定长字符串) 3.显示出任一年份的日历(&gt;...

    jtaskino:使用Redis的分布式任务计划程序

    折腾了一周的Java Quartz已完成任务调度,很遗憾没能搞定,网上的相关文章也少得可怜,在多计数器(多进程)环境下Quartz似乎无法动态增减任务,恼火。一个简单的任务调度器,结果只花了不到2天时间,而且感觉非常...

    JAVAEE健康管理系统SSH

    根据教师的相关信息,计算其每天所需热量,给出一周的推荐菜单。 (3)教师健康日志: 用户可以记录自己健康日记,记录每一天的睡眠,饮酒,吸烟,血压,体重等情况。 (4)教师体检管理: 教师可通过该平台...

    基于javaEE健康管理系统SSH毕业论文文档+java源码文件+视频说明.zip

    根据教师的相关信息,计算其每天所需热量,给出一周的推荐菜单。 (3)教师健康日志: 用户可以记录自己健康日记,记录每一天的睡眠,饮酒,吸烟,血压,体重等情况。 (4)教师体检管理: 教师可通过该平台...

    Java采购管理信息系统源码-AWS:亚马逊AWS

    无需等待数周或数月的硬件,您可以立即部署新应用程序,随着工作负载的增长立即扩展,并根据需求立即缩减。 无论您需要一台虚拟服务器还是数千台虚拟服务器,无论您需要几个小时还是 24/7,您仍然只需为使用的内容...

    payment-employee-fee:计算员工支付费用的项目

    他们将根据一周中的一天和一天中的时间支付工作时间。 建议的解决方案 Java提供了一组检查日期和时间的工具,因此请使用java.time包中的组件来执行那些验证。 通常,我使用带有模板模式的“策略模式”来执行操作以...

Global site tag (gtag.js) - Google Analytics