java 日期 获取

阿宝洁猪 2012-07-31 11:55:54
怎么根据 年、月、第几周,获取这年的这月第这周的日期集合。

比如 2012年,2月,第二周,则返回 2012年的2月的第二周的日期集合。

大哥帮忙啊,在线等。急,扣扣:66014588

我这有个方法,但是有些不对;

/**
* 获取指定日期为本月的第几周
* @param date
* @return
*/
public int getWeekOfMonth(String date){
Calendar c = new GregorianCalendar();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d = null;;
try {
d = sdf.parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
c.setTime(d);
return c.get(Calendar.WEEK_OF_MONTH);
}
public List<String> getWeekDateByWeekInMonth(int year, int month, int weekCount) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month - 1);
cal.set(Calendar.WEEK_OF_MONTH, weekCount);
int day = cal.get(Calendar.DAY_OF_YEAR);
List<String> date = new ArrayList<String>();
int[] days = new int[7];
for (int i = 0; i < 7; i++) {
days[i] = cal.get(Calendar.DAY_OF_MONTH);
String moth = cal.get(Calendar.MONTH) + 1 + "";
String dy = cal.get(Calendar.DAY_OF_MONTH)+"";
date.add(year+"-"+range(moth,2)+"-"+range(dy,2));
day++;
cal.set(Calendar.DAY_OF_YEAR, day);
}
return date;
}

测试参数:(2012,4,4)
返回结果:2012-04-24 2012-04-25 2012-04-26 2012-04-27 2012-04-28 2012-04-29 2012-04-30
但是在把 2012-04-29 2012-04-30 放入第一个方法,返回的是5.

大虾们帮我看看。
...全文
245 8 打赏 收藏 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
alvin__Gao 2012-08-01
  • 打赏
  • 举报
回复
刚才只是把代码写了~ 还应该处理下 超过31天的情况;具体就不写了。
alvin__Gao 2012-08-01
  • 打赏
  • 举报
回复

int year = 2012;
int mouth = 8;
int weekCount = 4;
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH,mouth-1);
cal.set(Calendar.WEEK_OF_MONTH, weekCount);
int day = cal.get(Calendar.DAY_OF_MONTH);
for(int i=0;i<7;i++){
cal.set(Calendar.DAY_OF_MONTH, (day+i));
String date = cal.get(Calendar.YEAR)+"-"+String.format("%02d", cal.get(Calendar.MONTH))+"-"
+String.format("%02d", cal.get(Calendar.DAY_OF_MONTH));
System.out.println(date);
}
五哥 2012-07-31
  • 打赏
  • 举报
回复

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;

public class Test11 {
/**
* 获取指定日期为本月的第几周
*
* @param date
* @return
*/
public int getWeekOfMonth(String date) {
Calendar c = new GregorianCalendar();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d = null;
try {
d = sdf.parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
c.setTime(d);
return c.get(Calendar.WEEK_OF_MONTH);
}

public List<String> getWeekDateByWeekInMonth(int year, int month,
int weekCount) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month - 1);
cal.set(Calendar.WEEK_OF_MONTH, weekCount);
int day = cal.get(Calendar.DAY_OF_YEAR);
List<String> date = new ArrayList<String>();
int[] days = new int[7];
for (int i = 0; i < 7; i++) {
days[i] = cal.get(Calendar.DAY_OF_MONTH);
String moth = cal.get(Calendar.MONTH) + 1 + "";
String dy = cal.get(Calendar.DAY_OF_MONTH) - 1 + "";
date.add(year + "-" + range(moth, 2) + "-" + range(dy, 2));
day++;
cal.set(Calendar.DAY_OF_YEAR, day);
}
return date;
}

private String range(String moth, int i) {
while (moth.length() < i) {
moth = "0" + moth;
}
return moth;
}

public static void main(String []args){

System.out.println(new Test11().getWeekDateByWeekInMonth(2012, 7, 2) );
}

}



结果:
从礼拜一开始
[2012-07-09, 2012-07-10, 2012-07-11, 2012-07-12, 2012-07-13, 2012-07-14, 2012-07-15]
daxiang253 2012-07-31
  • 打赏
  • 举报
回复
public static int getNowYear() {
java.util.Date tdate = new java.util.Date();
String nowtime = new Timestamp(tdate.getTime()).toString();
nowtime = nowtime.substring(0, 10);
String nowYear = nowtime.substring(0, 4);
return Integer.parseInt(nowYear);
}
这个是截取年的
阿宝洁猪 2012-07-31
  • 打赏
  • 举报
回复
大虾们 快来人啊~~~
VanBaston 2012-07-31
  • 打赏
  • 举报
回复
Calendar的第一天就应该是周日
五哥 2012-07-31
  • 打赏
  • 举报
回复
1 2 3 4 5 6 7 這幾個日子時 是1
8 9 10 11 12 13 14 這幾個日子時 是2
15 16 17 18 19 20 21 這幾個日子時 是3
22 23 24 25 26 27 28 這幾個日子時 是4
29 30 31 這幾個日子時 是5

五哥 2012-07-31
  • 打赏
  • 举报
回复
是不是我们的系统都是以礼拜天为一个礼拜的第一天的 ,你看看你系统的日期,是以星期日为一个星期的第一天的

62,620

社区成员

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

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