想实现这样的需求
以2012年12月18日为起点,取出以后三个月中 周一,周三,周五的日期,希望大家给点思路,以前未实现过类似需求
获取到今天的日历字段值(周),获取到你想获取的日期的日历字段值(周),这样你就能得要今天与你想要的日期相差几天,不就获取到了12.18之后的第一个周一、周三、周五的日期了么。然后都+7就OK了 day == Calendar.FRIDAY)
System.out.println(df.format(cal.getTime()));
cal.add(Calendar.DATE, 1);
}
}
}
要java.util.Calendar就能搞定的吧!
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
/**
* 以2012年12月18日为起点,
* 取出以后三个月中 周一,周三,周五的日期,
*
*/
public class Test
{
public static void main(String[] args)
{
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 2012);
cal.set(Calendar.MONTH, Calendar.DECEMBER);
cal.set(Calendar.DAY_OF_MONTH, 18);
Calendar c = (Calendar) cal.clone();
c.add(Calendar.MONTH, 3);
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
while(!c.before(cal))
{
int day = cal.get(Calendar.DAY_OF_WEEK) ;
if(day == Calendar.MONDAY day == Calendar.WEDNESDAY
你想用类库的话可以查查java中有关Calendar的类库,比如java.util.GregorianCalendar
最笨的方法就是遍历每天,得到每天是周几。参考 joda-time 的 DateTime类。看你用不用java自有的类库。
如果不用的话,就得自己写日历
周一周三周五都是有规律的,每个周都是一样。所以难点不在周几,而在日期。也就是说你要知道2012.12.18之后三个月的每天的日期和12.18是星期几就行了。
个人见解,仅供参考。