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

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>();

 }

}

你可能感兴趣的:(周查询工具类,按周查询数据,获取指定几个星期的周一和周日)