/**
* 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. 深入浅出设计模式——模板方法模式(Template Method Pattern)

    模式动机 模板方法模式是基于继承的代码复用基本技术,模板方法模式的结构和用法也是面向对象设计的核心之一.在模板方法模式中,可以将相同的代码放在父类中,而将不同的方法实现放在不同的子类中.在模板方法模式 ...

  2. fifter过滤器

    package fifter; import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterCh ...

  3. 用单分子测序(single-molecule sequencing)和局部敏感哈希(locality-sensitive hashing)来组装大型基因组

    Assembling large genomes with single-molecule sequencing and locality-sensitive hashing 好好读读,算法系列的好文 ...

  4. JavaWeb前端: JavaScript 简介

    JavaScript基本概念 什么是JavaScript JS是运行在浏览器里的解释性语言,能实现浏览器端和用户的直接交互(HTML输出/响应事件/改变HTML内容图像样式):除了变量不区分类型以外, ...

  5. Yii MySQL修改数据库的数据

    最新学习Yii框架,分享一些学习心得,适合初学者,大神请按ctrl + w //第一种方法 <?php /* * $id 代表主键,可以是一个也可以是一个集合. * $attributes 代表 ...

  6. App_GlobalResources.afvubzdv.resources.dll”--“拒绝访问。“

    在使用ArcGIS Viewer for Silverlight创建应用程序的时候有时会出现编译错误 前面的忘了  最后是App_GlobalResources.afvubzdv.resources. ...

  7. sql server 自增长id 允许插入显示值

    --允许插入显示插入主键id的值SET IDENTITY_INSERT [T0002_SType] ON 执行insert插入语句------------------ --关闭 插入显示值SET ID ...

  8. RabbitMQ基础概念详细介绍

    http://blog.csdn.net/column/details/rabbitmq.html 转至:http://www.ostest.cn/archives/497 引言 你是否遇到过两个(多 ...

  9. Java—类的封装、继承与多态

    一.类和对象 1.类 类是数据以及对数据的一组操作的封装体. 类声明的格式: 类声明 { 成员变量的声明: 成员方法的声明及实现: } 1.1 声明类 [修饰符] class 类<泛型> ...

  10. iOS开发拓展篇—封装音频文件播放工具类

    iOS开发拓展篇—封装音频文件播放工具类 一.简单说明 1.关于音乐播放的简单说明 (1)音乐播放用到一个叫做AVAudioPlayer的类 (2)AVAudioPlayer常用方法 加载音乐文件 - ...