日期函数的写法

denglala 2004-08-22 10:23:14
请问函数:实现功能:传入“200408”(即2004年8月份)和“1”(找第几周)两个参数;得到一个数组(将2004年8月份的第一周的几天用数组返回),即返回20040801,20040802,20040803,20040804,20040805,20040806,20040807这个数组,谢谢大家。

...全文
75 点赞 收藏 2
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
mydeman 2004-08-22
曾经有人问过同样的问题,不过二楼的这位真的反应很快,已经把我上一次的回答,贴了出来,谢谢你了。不过下次希望你能注明出处!
回复
MaoZhua 2004-08-22
public String[] getSingleWeek(String strDate, int intSingle){
String[] strWeekDays;

Calendar cal = Calendar.getInstance();
int intYear = Integer.parseInt(strDate.substring(0,4));
int intMonth = Integer.parseInt(strDate.substring(4)) - 1;
cal.set(intYear, intMonth, 1);

//
int intDay = cal.get(cal.DAY_OF_WEEK);
int intWeekNum = cal.get(cal.WEEK_OF_MONTH);
long longMillis = cal.getTimeInMillis();

//
if ( intWeekNum == intSingle ) {
strWeekDays = new String[8 - intDay];
for ( int i = 0; i < 8 - intDay; i ++) {
String strDateTemp = String.valueOf(cal.get(cal.DAY_OF_MONTH));
if (cal.get(cal.DAY_OF_MONTH) < 10) {
strDateTemp = "0" + strDateTemp;
}
strWeekDays[i] = strDate + strDateTemp;
longMillis += 24 * 60 * 60 * 1000;
cal.setTimeInMillis(longMillis);
}
}
else {
strWeekDays = new String[7];
longMillis += (intSingle - 2) * 7 * 24 * 60 * 60 * 1000 +
(7 - intDay) * 24 * 60 * 60 * 1000;
cal.setTimeInMillis(longMillis);
for ( int i = 0 ; i < 7 ; i ++) {
String strDateTemp = String.valueOf(cal.get(cal.DAY_OF_MONTH));
if (cal.get(cal.DAY_OF_MONTH) < 10) {
strDateTemp = "0" + strDateTemp;
}
strWeekDays[i] = strDate + strDateTemp;
longMillis += 24 *60 * 60 * 1000;
cal.setTimeInMillis(longMillis);
}
}

//
return strWeekDays;
}

回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2004-08-22 10:23
社区公告
暂无公告