怎样用计算一月有多少周,然后根据当月的周数计算当周的开始和结束日期

candebbs 2012-08-28 03:36:50
最好用Calendar类来实现,谢谢
...全文
265 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
candebbs 2012-08-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

package com.baidu;

import java.text.DateFormatSymbols;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;


public class Test {
//输入一个月份,判……
[/Quote]

第5周 日期:2010-05-30, 星期日
第6周 日期:2010-05-31, 星期一

这个可以连到06月吗?
huage 2012-08-28
  • 打赏
  • 举报
回复

public static void getWeekDay(Date date) throws ParseException{
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM") ;
String dateStr = dateFormat.format(date) ;
int m = 31 ;
for (int i = 1; i <= m; i++) {
Date date2 = null ;
String dateStr2 ="" ;
if(i<10)
dateStr2 =dateStr+"-0"+i;
else
dateStr2 =dateStr+"-"+i;

date2 = new SimpleDateFormat("yyyy-MM-dd").parse(dateStr2);
if(dateStr.equals(dateFormat.format(date2)))
System.out.println(dateStr2+"__________"+new SimpleDateFormat("F").format(date2)+"_______"+new SimpleDateFormat("E").format(date2));

}

}

看看是否有用
zqfddqr 2012-08-28
  • 打赏
  • 举报
回复
package com.baidu;

import java.text.DateFormatSymbols;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;


public class Test {
//输入一个月份,判断周数
public static void main(String args[]) throws Exception{
Calendar c_now = new GregorianCalendar();
Calendar c_begin = new GregorianCalendar();
Calendar c_end = new GregorianCalendar();
DateFormatSymbols dfs = new DateFormatSymbols();
String[] weeks = dfs.getWeekdays();

//设置参数,年,月
String date = "2010-5-5";
SimpleDateFormat df =new SimpleDateFormat("yyyy-M-d");
java.util.Date cDate = df.parse(date);
c_now.setTime(cDate);
int year=c_now.get(Calendar.YEAR);
int month = c_now.get(Calendar.MONTH)+1;
int[] days = {0,31,28,31,30,31,30,31,31,30,31,30,31};
if (year % 4==0) days[2]=29;//大年
c_begin.set(2010, month-1, 1); //月 0-11 天 0-
c_end.set(2010, month-1, days[month]);

int count = 1;
c_end.add(Calendar.DAY_OF_YEAR, 1); //结束日期下滚一天是为了包含最后一天
while(c_begin.before(c_end)){
System.out.println("第"+count+"周 日期:"+new java.sql.Date(c_begin.getTime().getTime())+", "+weeks[c_begin.get(Calendar.DAY_OF_WEEK)]);
if(c_begin.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY){
count++;
}
c_begin.add(Calendar.DAY_OF_YEAR, 1);
}
System.out.println("共计(跨越):"+(count-1) +"周");

}
}

第1周 日期:2010-05-01, 星期六
第1周 日期:2010-05-02, 星期日
第2周 日期:2010-05-03, 星期一
第2周 日期:2010-05-04, 星期二
第2周 日期:2010-05-05, 星期三
第2周 日期:2010-05-06, 星期四
第2周 日期:2010-05-07, 星期五
第2周 日期:2010-05-08, 星期六
第2周 日期:2010-05-09, 星期日
第3周 日期:2010-05-10, 星期一
第3周 日期:2010-05-11, 星期二
第3周 日期:2010-05-12, 星期三
第3周 日期:2010-05-13, 星期四
第3周 日期:2010-05-14, 星期五
第3周 日期:2010-05-15, 星期六
第3周 日期:2010-05-16, 星期日
第4周 日期:2010-05-17, 星期一
第4周 日期:2010-05-18, 星期二
第4周 日期:2010-05-19, 星期三
第4周 日期:2010-05-20, 星期四
第4周 日期:2010-05-21, 星期五
第4周 日期:2010-05-22, 星期六
第4周 日期:2010-05-23, 星期日
第5周 日期:2010-05-24, 星期一
第5周 日期:2010-05-25, 星期二
第5周 日期:2010-05-26, 星期三
第5周 日期:2010-05-27, 星期四
第5周 日期:2010-05-28, 星期五
第5周 日期:2010-05-29, 星期六
第5周 日期:2010-05-30, 星期日
第6周 日期:2010-05-31, 星期一
共计(跨越):5周

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧