Calendar 类中是以周日为开始的第一天的,所以Calendar.DAY_OF_WEEK为1的时候是周日.

在股票中有日K 周K和月K的数据. 

在此之中的周K是指交易日中一周的数据,周六到周五为一个周期.

 /**
* 返回2个日期间有多少股票周
* @param startDate 2012-02-01 开始日期
* @param endDate 2014-02-01 结束日期
* @return
*/
public static int getStockWeeks(String startDate,String endDate){
int a = 0;
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar before = Calendar.getInstance();
Calendar after = Calendar.getInstance();
Calendar temp = Calendar.getInstance(); before.setTime(sdf.parse(startDate));
after.setTime(sdf.parse(endDate)); long time1 = before.getTime().getTime();
long time2 = after.getTime().getTime(); if(time1>time2){//开始和结束时间对换了(有可能前后时间给错了)
temp=before;
before=after;
after=temp;
} int week = before.get(Calendar.DAY_OF_WEEK); before.add(Calendar.DATE, -week);//并非周一为第一天 周六为第一天 week = after.get(Calendar.DAY_OF_WEEK); if(week>0&&week<7)after.add(Calendar.DATE, 6 - week);
if(week==7)after.add(Calendar.DATE, 6);
a= (int) ((after.getTimeInMillis() - before
.getTimeInMillis()) / CONST_WEEK);
a = a - 1;
if (a == 0) {
a = 1;
}
} catch (Exception e) {
e.printStackTrace();
}
return a;
}
05-11 15:10