Java如何得到指定时间段中的第几周第几天的日期?

Java如何得到指定时间段中的第几周第几天的日期?比如2010年04月01日到2010年05月20日中,第二周的周一的日期是多少?... Java如何得到指定时间段中的第几周第几天的日期?
比如2010年04月01日到2010年05月20日中,第二周的周一的日期是多少?
展开
 我来答
corruptsatan
2010-04-07 · TA获得超过1108个赞
知道小有建树答主
回答量:473
采纳率:0%
帮助的人:609万
展开全部
第二周的周一??不完整周也算第一周???
我理解你的问题是第二个周一的日期是多少??

import java.util.Calendar;

public class Test {

/**
* @param args
*/
public static void main(String[] args) throws Exception {

Calendar c_begin = Calendar.getInstance();
Calendar c_end = Calendar.getInstance();
c_begin.set(2010, 3, 1); //Calendar的月从0-11,所以4月是3.
c_end.set(2010, 4, 20); //Calendar的月从0-11,所以5月是4.

int count = 0;
while(c_begin.before(c_end)){
//System.out.println(new java.sql.Date(c_begin.getTime().getTime()));
if(c_begin.get(Calendar.DAY_OF_WEEK)==Calendar.MONDAY){
count++;
}
if(count == 2){
System.out.println(c_begin.get(Calendar.YEAR)+"年"+(c_begin.get(Calendar.MONTH)+1)+"月"+c_begin.get(Calendar.DATE)+"日");
break;
}

c_begin.add(Calendar.DAY_OF_YEAR, 1);
}

}
}
shala202020
2015-07-15 · TA获得超过4159个赞
知道小有建树答主
回答量:1410
采纳率:85%
帮助的人:354万
展开全部
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class DateUtil {
/**
*
* @param year 年份
* @param month 月份
* @param weekOfMonth 这个月的第几周
* @param dayOfWeek 星期几
* @return
*/
public static String weekdatetodata(int year,int month,int weekOfMonth,int dayOfWeek){
Calendar c = Calendar.getInstance();
//计算出 x年 y月 1号 是星期几
c.set(year, month-1, 1);
//如果i_week_day =1 的话 实际上是周日
int i_week_day = c.get(Calendar.DAY_OF_WEEK);
int sumDay = 0;
//dayOfWeek+1 就是星期几(星期日 为 1)
if(i_week_day == 1){
sumDay = (weekOfMonth-1)*7 + dayOfWeek+1;
}else{
sumDay = 7-i_week_day+1 + (weekOfMonth-1)*7 + dayOfWeek +1;
}
//在1号的基础上加上相应的天数
c.set(Calendar.DATE, sumDay);
SimpleDateFormat sf2 = new SimpleDateFormat("yyyy-MM-dd");
return sf2.format(c.getTime());
}
public static void main(String[] args) {
//2009年1月 第二周星期三 得到2009-01-14
System.out.println(weekdatetodata(2009, 1, 2, 3));
//2009年2月 第二周星期三 得到2009-02-11
System.out.println(weekdatetodata(2009, 2, 2, 3));
//2009年4月 第二周星期三 得到2009-04-15
System.out.println(weekdatetodata(2009, 4, 2, 3));
//2009年2月 第三周星期四 得到2009-02-19
System.out.println(weekdatetodata(2009, 2, 3, 4));
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
食古之雪
2010-04-07 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:100
采纳率:0%
帮助的人:95.6万
展开全部
知道起始日期,再加上想推后的天数,不就知道具体日期了吗?
比如2010年04月01日到2010年05月20日中,第二周的周一的日期不就是2010年04月08日吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式