您的位置:首页 > 编程语言 > Java开发

获取指定几个星期的周一、周日的工具类(可用于按周查询数据)

2015-12-24 00:00 471 查看
摘要: 获取指定几个星期的周一、周日的工具类(可用于按周查询数据)

joda-time-2.4.jar下载地址:链接:http://pan.baidu.com/s/1eRnGLO2 密码:ff7h

import java.util.List;
import java.util.Map;
import org.joda.time.LocalDateTime;
/**
* 获取指定几个星期的周一、周日的工具类(可用于按周查询数据)
* @author fcy
*
*/
public class WeekDateUtil {
public static List<Map<String, LocalDateTime>> getDate(Integer num){

List<Map<String, LocalDateTime>> dateList = CollectionUtil.newListInstance();

LocalDateTime mon = null;//本周一日期
LocalDateTime sun = null;//本周日日期
//当前时间
LocalDateTime dateTime = new LocalDateTime();
int week = dateTime.getDayOfWeek(); //获取今天是星期几
//判断今天是周几,计算出周一和周日的日期
switch (week) {
case 1:
mon = dateTime;
sun = dateTime.plusDays(6);
break;
case 2:
mon = dateTime.minusDays(1);
sun = dateTime.plusDays(5);
break;
case 3:
mon = dateTime.minusDays(2);
sun = dateTime.plusDays(4);
break;
case 4:
mon = dateTime.minusDays(3);
sun = dateTime.plusDays(3);
break;
case 5:
mon = dateTime.minusDays(4);
sun = dateTime.plusDays(2);
break;
case 6:
mon = dateTime.minusDays(5);
sun = dateTime.plusDays(1);
break;
case 7:
mon = dateTime.minusDays(6);
sun = dateTime;
break;
default:
break;
}

int date = 0;
//根据获取指定的前几周的周一和周日的日期(包括本周)
for (int i = 0; i < num; i++) {
Map<String, LocalDateTime> map = CollectionUtil.newMapInstance();
map.put("Mon",mon.minusDays(date));
map.put("Sun",sun.minusDays(date));
dateList.add(map);
date += 7;
}

for (int i = 0; i < dateList.size(); i++) {
System.out.println("周一:" + dateList.get(i).get("Mon").toString("yyyy-MM-dd"));
System.out.println("周日:" + dateList.get(i).get("Sun").toString("yyyy-MM-dd"));
}

return dateList;
}

public static void main(String[] args) {
getDate(3);
}
}


import java.util.ArrayList;

import java.util.HashMap;

/**

* 集合工厂类

* @author fcy

*

*/

public class CollectionUtil {

public static <K,V> HashMap<K, V> newMapInstance(){

return new HashMap<K, V>();

}

public static <T> ArrayList<T> newListInstance(){

return new ArrayList<T>();

}

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息