/**
* get period for last year
* @param time
* @return
*/
public static DatePeriodDTO getLastYear(long time) {
Calendar calendar = Calendar.getInstance();
//get last year
calendar.add(Calendar.YEAR, -1);

int lastYear = calendar.get(Calendar.YEAR);
calendar.clear();
//set to last year
calendar.set(Calendar.YEAR, lastYear);
//get first day of last year
Date yearFrom = calendar.getTime();
//get last day of last year
calendar.roll(Calendar.DAY_OF_YEAR, -1);
Date yearTo = calendar.getTime();
return new DatePeriodDTO(yearFrom, yearTo);

}

/**
* get period for last month
* @param time
* @return
*/
public static DatePeriodDTO getLastMonth(long time) {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH, -1);

//last day of last month
calendar.set(Calendar.DAY_OF_MONTH,calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
Date strDateTo = calendar.getTime();

//first day of last month
calendar.set(Calendar.DAY_OF_MONTH,calendar.getActualMinimum(Calendar.DAY_OF_MONTH));
Date strDatefrom = calendar.getTime();

return new DatePeriodDTO(strDatefrom, strDateTo);
}

/**
* get period for last week
* @param time
* @return
*/
public static DatePeriodDTO getLastWeek(long time) {
Calendar calendar = Calendar.getInstance();
calendar.setFirstDayOfWeek(Calendar.MONDAY);
//last Sunday
calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
calendar.add(Calendar.WEEK_OF_MONTH, -1);
Date endDate = calendar.getTime();
//last Monday
calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) - 6);
Date startDate = calendar.getTime();
return new DatePeriodDTO(startDate, endDate);
}

/**
* is last year
* @param time
* @return
*/
public static boolean isLastYear(long time) {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.YEAR, -1);
int lastYear = calendar.get(Calendar.YEAR);
calendar.setTime(new Date(time));
int paramYear = calendar.get(Calendar.YEAR);
if (paramYear == lastYear) {
return true;
}
return false;
}

/**
* is last month
* @param time
* @return
*/
public static boolean isLastMonth(long time) {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH, -1);
int lastMonth = calendar.get(Calendar.MONTH);
calendar.setTime(new Date(time));
int paramMonth = calendar.get(Calendar.MONTH);
if (paramMonth == lastMonth) {
return true;
}
return false;
}

/**
* is last week
* @param time
* @return
*/
public static boolean isLastWeek(long time) {
Calendar calendar = Calendar.getInstance();
calendar.setFirstDayOfWeek(Calendar.MONDAY);
calendar.add(Calendar.DATE, -7);
calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
int lastWeek = calendar.get(Calendar.WEEK_OF_YEAR);
calendar.setTime(new Date(time));
int paramWeek = calendar.get(Calendar.WEEK_OF_YEAR);
if (paramWeek == lastWeek) {
return true;
}
return false;
}

Date get period的更多相关文章

  1. JAVA TIMER定时器

    备注:类实现ServletContextListener,在web.xml配置,之后服务启动该定时器类自动加载 package com.leadlt.common.util; import java. ...

  2. Java中的Timer和TimerTask在Android中的用法(转)

    转自:http://blog.csdn.net/zuolongsnail/article/details/8168689 在开发中我们有时会有这样的需求,即在固定的每隔一段时间执行某一个任务.比如UI ...

  3. JodaTime初体验

    前段时间用JDK自带的Calendar类来处理日期,需要获取年.季,月,星期的起始日期,被折腾得要死要活.看了这篇文章 http://www.blogbus.com/dreamhead-logs/22 ...

  4. java定时任务

    java定时任务实现方法: public class TimingTask { private static int count = 0; private static SpiderService s ...

  5. General Ledger Useful SQL Scripts – Oracle Applications 11i

    General Ledger Useful SQL Scripts – Oracle Applications 11i Contents GL Set of Books Configuration O ...

  6. 定时任务:Java中Timer和TimerTask的使用

    java.util.Timer定时器,实际上是个线程,定时调度所拥有的TimerTasks. 一个TimerTask实际上就是一个拥有run方法的类,需要定时执行的代码放到run方法体内,TimerT ...

  7. Java中Timer和TimerTask的使用

    转自:http://www.cdtarena.com/javapx/201306/8893.html java.util.Timer定时器,实际上是个线程,定时调度所拥有的TimerTasks. 一个 ...

  8. Android中实现定时器的四种方式

    第一种方式利用Timer和TimerTask 1.继承关系 java.util.Timer 基本方法 schedule 例如: timer.schedule(task, delay,period); ...

  9. Timer,TimerTask通过程序计数器实现的定时任务

    1.程序计数器 程序计数器(Program Counter Register)是一块较小的内存空间,它的作用可以看 做是当前线程所执行的字节码的行号指示器.在虚拟机的概念模型里(仅是概念模型, 各种虚 ...

随机推荐

  1. (六)ICMP、ping

    ping命令是ICMP协议 127.0.0.1 ifconfig -all

  2. nginx配置文件结构

    nginx配置文件结构   全局参数 配置系统全局参数如:worker_processes 工作子进程数量.error_log 错误日志路径.pid 进程IDEvent一般是配置nginx工作模式及连 ...

  3. 转!mysql 查询 distinct多个字段 注意!!

    前几天做项目时,mysql写了个sql, distinct  id,col1,col2,...  结果出来了多条同个ID的记录,百度了下..... 下面先来看看例子: table  id name  ...

  4. 纠错工具之 - Proovread

    BioInf-Wuerzburg/proovread - Github 主要是来解读 proovread 发表的文章,搞清楚它内在的原理. Proovread,这个工具绝对没有你想的那么简单,它引入了 ...

  5. Unity NGUI 2D场景添加按钮

    比如说先添加一个sprite 在sprite加上NGUI的 UI Button 然后重点来了  加上Box Collider 2D(重点:2D 千万不要加 Box Collider) 将Box Col ...

  6. OpenAl编程入门:播放一段音频

    OpenAl编程入门 关于OpenAl我就不多介绍了,这两篇说明对于初步了解已经足够了:http://baike.baidu.com/view/1355367.htmhttp://en.wikiped ...

  7. 樱花漫地集于我心,蝶舞纷飞祈愿相随 発生:genesis 发生:genesis

    朱念齐,学号160809404(这些其实并没有什么乱用)唉( ̄y▽ ̄)~* 正文 鬼族后裔,原是露格尼卡王国的子民,在王立比布利亚学园任职魔法使拥有分别为: 拥有书库: 书库:傲慢(Superbia) ...

  8. PDF 补丁丁 0.4.2.950 测试版发布:按文件夹合并生成单独的PDF文件

    新的测试版实现了将文件夹的内容合并为单独的PDF文件的功能.以下图为例讲解操作步骤. 点击工具栏的“合并文件”按钮,打开合并功能. 设M盘下有“test”和“test2”文件夹,里面包含了需要合并的文 ...

  9. sharepoint Report使用共享数据源部署报错

    在VS中做了一下报表,把数据源设置成为共享数据源,部署时发生以下错误: 解决方法:在VS中解决方案窗口,选择共享数据源中的用到的数据源名称,右键点击,选择“部署”,部署成功后,再部署报表即可.

  10. QT快速使用ntohs

    QT快速使用ntohs,需要注意3点:1. ntohs只是转换相邻的2个字节2. 引入头文件#include <windows.h>3. 需要加上win32{LIBS+=-lws2_32} ...