java中时间分段
给了String类型的起始时间,根据需要想将他们分段,按周/月分段,怎么实现呢?例如给了“2011-03-02”,“2011-05-01”。怎样得到一系列的时间段呢,想要得到String类型的! --------------------编程问答--------------------
不知道我理解的对不对,可以将这个String时间转换成日期对象,再通过日期对象,获取你想要的 --------------------编程问答--------------------
SimpleDateFormat--------------------编程问答-------------------- Calandar --------------------编程问答-------------------- String时间转换成日期对象 在将data类型转成秒 在用第二个减去第一个就是两个之间的时间。一周等于多少秒。对于你的要求不是很明确 。看看是否能帮到你 --------------------编程问答-------------------- 给你写了一个周的分组,月的应该你就会写了
package com.v617.test;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class DateTime {
public List getWeekList(String begin, String end)
{
List list = new ArrayList();
try
{
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date beginDate = df.parse(begin);
Date endDate = df.parse(end);
Calendar ca = Calendar.getInstance();
Map map = new HashMap();
while (beginDate.compareTo(endDate) <= 0)
{
ca.setTime(beginDate);
String weekName = getWeekDayString(beginDate);
//如果星期日创建一个新的Map
map.put(df.format(beginDate),weekName);
if(weekName.equals("星期日"))
{
list.add(map);
map = new HashMap();
}
ca.add(ca.DATE, 1);
beginDate = ca.getTime();
}
}
catch (ParseException e)
{
e.printStackTrace();
}
return list;
}
public String getWeekDayString(Date date)
{
String dayNames[] = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
String weekString = dayNames[dayOfWeek - 1];
return weekString;
}
public static void main(String args[]) {
DateTime dateTime = new DateTime();
List list = dateTime.getWeekList("2011-03-02", "2011-05-01");
for(int i=0;i<list.size();i++)
{
System.out.println(list.get(i));
}
}
}
结果如下:
{2011-03-06=星期日, 2011-03-05=星期六, 2011-03-02=星期三, 2011-03-03=星期四, 2011-03-04=星期五}
{2011-03-08=星期二, 2011-03-07=星期一, 2011-03-09=星期三, 2011-03-10=星期四, 2011-03-11=星期五, 2011-03-12=星期六, 2011-03-13=星期日}
{2011-03-20=星期日, 2011-03-16=星期三, 2011-03-14=星期一, 2011-03-17=星期四, 2011-03-15=星期二, 2011-03-18=星期五, 2011-03-19=星期六}
{2011-03-24=星期四, 2011-03-23=星期三, 2011-03-26=星期六, 2011-03-25=星期五, 2011-03-22=星期二, 2011-03-21=星期一, 2011-03-27=星期日}
{2011-04-02=星期六, 2011-04-03=星期日, 2011-04-01=星期五, 2011-03-31=星期四, 2011-03-30=星期三, 2011-03-29=星期二, 2011-03-28=星期一}
{2011-04-04=星期一, 2011-04-10=星期日, 2011-04-05=星期二, 2011-04-07=星期四, 2011-04-06=星期三, 2011-04-09=星期六, 2011-04-08=星期五}
{2011-04-11=星期一, 2011-04-12=星期二, 2011-04-13=星期三, 2011-04-14=星期四, 2011-04-15=星期五, 2011-04-16=星期六, 2011-04-17=星期日}
{2011-04-22=星期五, 2011-04-23=星期六, 2011-04-20=星期三, 2011-04-21=星期四, 2011-04-24=星期日, 2011-04-19=星期二, 2011-04-18=星期一}
{2011-04-30=星期六, 2011-04-26=星期二, 2011-04-27=星期三, 2011-04-28=星期四, 2011-04-29=星期五, 2011-04-25=星期一, 2011-05-01=星期日}
补充:Java , Java EE