免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 10506 | 回复: 10
打印 上一主题 下一主题

在java中怎样根据第几周得到这一周的起始和结束日期,最好有代码 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-01-26 10:33 |只看该作者 |倒序浏览
在java中怎样根据第几周得到这一周的起始和结束日期,最好有代码         

论坛徽章:
0
2 [报告]
发表于 2005-01-26 11:03 |只看该作者

在java中怎样根据第几周得到这一周的起始和结束日期,最好有代码


  1. Calendar cal = new GregorianCalendar(2005, Calendar.JANUARY, 30);

  2. int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);

  3. Calendar calFirstDayInThisWeek = (Calendar)cal.clone();

  4. calFirstDayInThisWeek.add(Calendar.DATE, cal.getActualMinimum(Calendar.DAY_OF_WEEK)-dayOfWeek);

  5. Calendar calLastDayInThisWeek = (Calendar)cal.clone();

  6. calLastDayInThisWeek.add(Calendar.DATE,cal.getActualMaximum(Calendar.DAY_OF_WEEK)-dayOfWeek);
复制代码

论坛徽章:
0
3 [报告]
发表于 2005-01-26 14:19 |只看该作者

在java中怎样根据第几周得到这一周的起始和结束日期,最好有代码

呵呵,

类Calendar还是很强大的

论坛徽章:
0
4 [报告]
发表于 2005-01-26 14:23 |只看该作者

在java中怎样根据第几周得到这一周的起始和结束日期,最好有代码

根据第x年中第n周取得这周起始和结束日期,以x和n为参数

论坛徽章:
0
5 [报告]
发表于 2005-01-26 15:12 |只看该作者

在java中怎样根据第几周得到这一周的起始和结束日期,最好有代码

[quote]原帖由 "zhb01"]根据第x年中第n周取得这周起始和结束日期,以x和n为参数[/quote 发表:

道理差不多,可以从1月1号推算吧

  1. Calendar calFirstDayOfTheYear = new GregorianCalendar(x,
  2.                                     Calendar.JANUARY, 1);
  3. calFirstDayOfTheYear.add(Calendar.DATE, 7 * (n-1));                   

复制代码

论坛徽章:
0
6 [报告]
发表于 2005-01-27 09:12 |只看该作者

在java中怎样根据第几周得到这一周的起始和结束日期,最好有代码

按照楼上说必须指定1月1日为星期的第一天,然后推算每一天,我说的是按照正常日历来计算。

论坛徽章:
0
7 [报告]
发表于 2005-01-27 10:25 |只看该作者

在java中怎样根据第几周得到这一周的起始和结束日期,最好有代码

[quote]原帖由 "zhb01"]按照楼上说必须指定1月1日为星期的第一天,然后推算每一天,我说的是按照正常日历来计算。[/quote 发表:


没有必须指定1月1日为星期的第一天,写程序要靠实践,Calendar 类的功能应该足够强大满足你的要求,你自己试试吧,我不过是丢块砖头罢了,也许有更好的解决办法

  1. Calendar calFirstDayOfTheYear = new GregorianCalendar(year,
  2.                                     Calendar.JANUARY, 1);
  3.                     calFirstDayOfTheYear.add(Calendar.DATE, 7 * (week-1));
  4.                    
  5.                     dayOfWeek = calFirstDayOfTheYear.get(Calendar.DAY_OF_WEEK);
  6.                     
  7.                     Calendar calFirstDayInWeek = (Calendar)calFirstDayOfTheYear.clone();
  8.                     calFirstDayInWeek.add(Calendar.DATE,
  9.                                     calFirstDayOfTheYear.getActualMinimum(Calendar.DAY_OF_WEEK) - dayOfWeek);
  10.                     Date firstDayInWeek = calFirstDayInWeek.getTime();
  11.                     System.out.println(year + "年第" + week + "个礼拜的第一天是" + df.format(firstDayInWeek));
  12.                     
  13.                     Calendar calLastDayInWeek = (Calendar)calFirstDayOfTheYear.clone();
  14.                     calLastDayInWeek.add(Calendar.DATE,
  15.                                     calFirstDayOfTheYear.getActualMaximum(Calendar.DAY_OF_WEEK) - dayOfWeek);
  16.                     Date lastDayInWeek = calLastDayInWeek.getTime();
  17.                     System.out.println(year + "年第" + week + "个礼拜的第一天是" + df.format(lastDayInWeek));
复制代码

论坛徽章:
0
8 [报告]
发表于 2005-01-27 10:42 |只看该作者

在java中怎样根据第几周得到这一周的起始和结束日期,最好有代码

int x=2007;
    int n=10;
    Calendar cal = new GregorianCalendar(x, Calendar.JANUARY, 1);
   
    int ff=cal.get(Calendar.DAY_OF_WEEK);
    int week=cal.get(Calendar.WEEK_OF_YEAR);
    System.out.println("week:"+week);
    System.out.println("ff:"+ff);
    switch(ff){
      case 1:
        cal.set(Calendar.DATE,7*(n-2)+ff+7);
        break;
      case 2:
        cal.set(Calendar.DATE,7*(n-2)+ff+6);
        break;
      case 3:
        cal.set(Calendar.DATE,7*(n-2)+ff+5);
        break;
      case 4:
        cal.set(Calendar.DATE,7*(n-2)+ff+4);
        break;
      case 5:
        cal.set(Calendar.DATE,7*(n-2)+ff+3);
        break;
      case 6:
        cal.set(Calendar.DATE,7*(n-2)+ff+2);
        break;
      case 7:
        cal.set(Calendar.DATE,7*(n-2)+ff+1);
        break;

    }
   
    System.out.println("cal 1:"+cal.getTime());
    int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
    System.out.println("dayOfWeek :"+dayOfWeek);
    Calendar calFirstDayInThisWeek = (Calendar) cal.clone();
    calFirstDayInThisWeek.add(Calendar.DATE, cal.getActualMinimum(Calendar.DAY_OF_WEEK)-dayOfWeek);
    Calendar calLastDayInThisWeek = (Calendar) cal.clone();
    calLastDayInThisWeek.add(Calendar.DATE,cal.getActualMaximum(Calendar.DAY_OF_WEEK)-dayOfWeek);
    Date startDate=calFirstDayInThisWeek.getTime();
    Date endDate=calLastDayInThisWeek.getTime();
        System.out.println("calFirstDayInThisWeek:"+calFirstDayInThisWeek.getTime());
    System.out.println("calLastDayInThisWeek:"+calLastDayInThisWeek.getTime());
    System.out.println("startDate:"+startDate.getTime());

论坛徽章:
0
9 [报告]
发表于 2005-01-27 11:02 |只看该作者

在java中怎样根据第几周得到这一周的起始和结束日期,最好有代码

结果都一样

论坛徽章:
0
10 [报告]
发表于 2005-01-27 15:03 |只看该作者

在java中怎样根据第几周得到这一周的起始和结束日期,最好有代码

先滚动到该年.

Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR,x);

滚动到周:

c.set(Calendar.WEEK_OF_YEAR,n);
得到该周第一天:
c.set(Calendar.DAY_OF_WEEK,1);
最后一天:

c.set(Calendar.DAY_OF_WEEK,7);
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP