获取某年第几周的起始终止日期 本帖最后由 shf156184620 于 2009-12-19 10:12:45 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public static void main(String[] args) { System.out.println(getDateByWeek(2009,1,"start"));} public static String getDateByWeek(int year, int week,String type){ int offset = 0; if("end".equals(type)) offset=6; Calendar c= Calendar.getInstance(); c.set(Calendar.YEAR, year); c.set(Calendar.WEEK_OF_YEAR, week); c.add(Calendar.DAY_OF_YEAR, offset); return c.get(Calendar.YEAR)+"-"+(c.get(Calendar.MONTH)+1)+"-"+c.get(Calendar.DAY_OF_MONTH);} import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;public class DateTest { /** * @param args */ static Calendar cal=new GregorianCalendar(); public static String getStartDateByWeek(int year, int week){ cal.set(Calendar.YEAR, year); cal.set(Calendar.WEEK_OF_YEAR, week); cal.set(Calendar.DAY_OF_WEEK, 1); Date result=cal.getTime(); if(result.getTime()<new GregorianCalendar(2009,0,1).getTimeInMillis()) return new SimpleDateFormat("yyyy-MM-dd").format(new GregorianCalendar(2009,0,1).getTime()); return new SimpleDateFormat("yyyy-MM-dd").format(result); } public static String getEndDateByWeek(int year, int week){ cal.set(Calendar.YEAR, year); cal.set(Calendar.WEEK_OF_YEAR, week); cal.set(Calendar.DAY_OF_WEEK, 7); Date result=cal.getTime(); if(result.getTime()>new GregorianCalendar(2009,12,31).getTimeInMillis()) return new SimpleDateFormat("yyyy-MM-dd").format(new GregorianCalendar(2009,11,31).getTime()); return new SimpleDateFormat("yyyy-MM-dd").format(result); } public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(getStartDateByWeek(2009,1)); System.out.println(getEndDateByWeek(2009,1)); }}结果:2009-01-012009-01-03多查一下API,多测试几次就可以了 } public String getStartDateByWeek(int year, int week){ Calendar c=Calendar.getInstance(); c.set(Calendar.YEAR,year); c.set(Calendar.WEEK_OF_YEAR,week); SimpleDateFormat s=new SimpleDateFormat("yyyy-MM-dd"); String starTime=s.format(c.getTime()); return starTime; } public String getEndDateByWeek(int year, int week){ Calendar c=Calendar.getInstance(); c.set(Calendar.YEAR,year); c.set(Calendar.WEEK_OF_YEAR,week); SimpleDateFormat s=new SimpleDateFormat("yyyy-MM-dd"); c.add(Calendar.DAY_OF_MONTH,6); String endTime=s.format(c.getTime()); return endTime; }新年刚开始那天所在星期的周六为新年第一周的开始时间,以后一次加7为第几周的开始时间,不知道这个会不会影响到你的应用 List 复制速度 网络五子棋的开始部分,帮忙看看? 关于JAVA的图象处理,大家都来讨论一下!!!!!!!!!!!!!!! i = i++;这时i的值变了吗? 初学多线程遇到的问题 java程序如何hook? 急急急急急急急?????? [加急急]:做一个WebMail,POP3不支持多个文件夹,我该如何访问收件箱,发件箱,垃圾箱?? 300分救助中文问题的解决方案(分两次付清) 为什么东方快车不能翻译JBuilder 5 Enterprise,E文不好的朋友是怎么做的? 线程的执行顺序问题? 关于java环境变量的小问题
public static void main(String[] args) {
System.out.println(getDateByWeek(2009,1,"start"));
}
public static String getDateByWeek(int year, int week,String type){
int offset = 0;
if("end".equals(type)) offset=6;
Calendar c= Calendar.getInstance();
c.set(Calendar.YEAR, year);
c.set(Calendar.WEEK_OF_YEAR, week);
c.add(Calendar.DAY_OF_YEAR, offset);
return c.get(Calendar.YEAR)+"-"+(c.get(Calendar.MONTH)+1)+"-"+c.get(Calendar.DAY_OF_MONTH);
}
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;public class DateTest { /**
* @param args
*/
static Calendar cal=new GregorianCalendar();
public static String getStartDateByWeek(int year, int week){
cal.set(Calendar.YEAR, year);
cal.set(Calendar.WEEK_OF_YEAR, week);
cal.set(Calendar.DAY_OF_WEEK, 1);
Date result=cal.getTime();
if(result.getTime()<new GregorianCalendar(2009,0,1).getTimeInMillis())
return new SimpleDateFormat("yyyy-MM-dd").format(new GregorianCalendar(2009,0,1).getTime());
return new SimpleDateFormat("yyyy-MM-dd").format(result);
}
public static String getEndDateByWeek(int year, int week){
cal.set(Calendar.YEAR, year);
cal.set(Calendar.WEEK_OF_YEAR, week);
cal.set(Calendar.DAY_OF_WEEK, 7);
Date result=cal.getTime();
if(result.getTime()>new GregorianCalendar(2009,12,31).getTimeInMillis())
return new SimpleDateFormat("yyyy-MM-dd").format(new GregorianCalendar(2009,11,31).getTime());
return new SimpleDateFormat("yyyy-MM-dd").format(result);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(getStartDateByWeek(2009,1));
System.out.println(getEndDateByWeek(2009,1));
}}
结果:2009-01-01
2009-01-03多查一下API,多测试几次就可以了
public String getStartDateByWeek(int year, int week){
Calendar c=Calendar.getInstance();
c.set(Calendar.YEAR,year);
c.set(Calendar.WEEK_OF_YEAR,week);
SimpleDateFormat s=new SimpleDateFormat("yyyy-MM-dd");
String starTime=s.format(c.getTime());
return starTime;
}
public String getEndDateByWeek(int year, int week){
Calendar c=Calendar.getInstance();
c.set(Calendar.YEAR,year);
c.set(Calendar.WEEK_OF_YEAR,week);
SimpleDateFormat s=new SimpleDateFormat("yyyy-MM-dd");
c.add(Calendar.DAY_OF_MONTH,6);
String endTime=s.format(c.getTime());
return endTime;
}
新年刚开始那天所在星期的周六为新年第一周的开始时间,以后一次加7为第几周的开始时间,不知道这个会不会影响到你的应用