我自己解决了。贴出来和大家分享一下。如果程序有什么错误和更好的办法欢迎大家一起来探讨 System.out.println("根据周信息获取日期:"+tt.getDayByWeekInfo("200902",3,4)); //获取2009年2月第三周的星期四为几月几号
/**
*根据月 周 星期 信息得到日期
*@author xiaohunzhang
*@parm YEARMONTH String 年月格式为yyyyMM(可根据需求自己调整)
*@parm week_of_month int 第几周
*@parm week_day int 星期几
*2009-02-23
*/
public String getDayByWeekInfo(String YEARMONTH, int week_of_month,
int week_day) {
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String year = YEARMONTH.substring(0, 4);
String month = YEARMONTH.substring(4, 6);
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, Integer.parseInt(year));
cal.set(Calendar.MONTH, (Integer.parseInt(month)-1)); cal.set(Calendar.WEEK_OF_MONTH, week_of_month);
switch (week_day) {
case 0:
cal.set(Calendar.DAY_OF_WEEK, 1);
break;
case 1:
cal.set(Calendar.DAY_OF_WEEK, (week_day + 1));
break;
case 2:
cal.set(Calendar.DAY_OF_WEEK, (week_day + 1));
break;
case 3:
cal.set(Calendar.DAY_OF_WEEK, (week_day + 1));
break;
case 4:
cal.set(Calendar.DAY_OF_WEEK, (week_day + 1));
break;
case 5:
cal.set(Calendar.DAY_OF_WEEK, (week_day + 1));
break;
case 6:
cal.set(Calendar.DAY_OF_WEEK, (week_day + 1));
break; } str = sdf.format(cal.getTime());
return str;
}
/**
*根据月 周 星期 信息得到日期
*@author xiaohunzhang
*@parm YEARMONTH String 年月格式为yyyyMM(可根据需求自己调整)
*@parm week_of_month int 第几周
*@parm week_day int 星期几
*2009-02-23
*/
public String getDayByWeekInfo(String YEARMONTH, int week_of_month,
int week_day) {
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String year = YEARMONTH.substring(0, 4);
String month = YEARMONTH.substring(4, 6);
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, Integer.parseInt(year));
cal.set(Calendar.MONTH, (Integer.parseInt(month)-1)); cal.set(Calendar.WEEK_OF_MONTH, week_of_month);
switch (week_day) {
case 0:
cal.set(Calendar.DAY_OF_WEEK, 1);
break;
case 1:
cal.set(Calendar.DAY_OF_WEEK, (week_day + 1));
break;
case 2:
cal.set(Calendar.DAY_OF_WEEK, (week_day + 1));
break;
case 3:
cal.set(Calendar.DAY_OF_WEEK, (week_day + 1));
break;
case 4:
cal.set(Calendar.DAY_OF_WEEK, (week_day + 1));
break;
case 5:
cal.set(Calendar.DAY_OF_WEEK, (week_day + 1));
break;
case 6:
cal.set(Calendar.DAY_OF_WEEK, (week_day + 1));
break; } str = sdf.format(cal.getTime());
return str;
}
解决方案 »
- Oralce的rowNum是先生成再进行where,order by 么?~
- 请教struts2中checkboxlist的验证方式,比较初级
- 问下定义一个数组定义2种类型该怎么定义?
- 紧急求救啊!!服务器做成双机后,相互之间不能互连了,连telnet都拒绝,这是什么原因?
- struts2标签 页面显示问题?
- 请问一个hibernate2.18的多对多查询的问题
- 请问,<abc>base64Binary</abc>,这样定义的一个结构,在JAVA里面如何定义?
- 服务端如何得到win2000客户端的当前登陆的用户?
- 请问能否由byte[]创建一个InputStream,byte[]为一个文件的byte[]
- 菜鸟请教一个XML读取的问题...
- ★★★★请大家指点下关于hibernate的这段代码★★★★
- (IBatis)不经过的Bean中的方法,直接调用成功的jsp页面(用的是ibatis jpetstore 框架),好像是序列化的问题,没有将对象进行序列化。怎么解决。急!!!
int month = 2;
int week = 3;
int day = 4;
Calendar calendar = Calendar.getInstance();
calendar.set(calendar.YEAR, year);
calendar.set(calendar.MONTH, month-1);
calendar.set(calendar.WEEK_OF_MONTH, week);
calendar.set(calendar.DAY_OF_WEEK, day+1);
使用Calendar cal = Calendar.getInstance();
cal.set([Calendar.YEAR,Calendar.MONTH,Calendar.WEEK_OF_MONTH,Calendar.DAY_OF_WEEK_IN_MONTH],value)
分别将数据设置进去
得到日期格式:
Date date = cal.getTime();
得到字符串格式的日期:
SimpleDateFormat format = new SimpleFormat("yyyy-MM-dd");
String dateStr = format.format(cal.getTime());