日期:2014-05-20  浏览次数:20850 次

返回离日期字符串前后最近的那个日期
入参是个日期字符串数组,和一个日期字符串
在日期字符串数组中返回离日期字符串前后最近的那个日期 
 public static String getDate(String [] dataString,String dateStr )
  {
  String returnDate="";
  String dataString [] = new String[4];
  dataString[0] ="20130806";
  dataString[1] ="20130810";
  dataString[2] ="20130816";
  dataString[3] ="20130826";

  String dateStr ="20130819";
  return returnDate;
  }

------解决方案--------------------
循环比较。大小。绝对值。
------解决方案--------------------
/**
 * 把字符串格式化成相应的日期格式
 * 
 * @param s 日期字符串格式 String
 * @param datePattern 日期模式 String
 * @return 返回格式化后的日期
 */
public static Date parseDate(String s, String datePattern) {

s = s.replaceAll(" ", "");
if (s == null 
------解决方案--------------------
 s.equals(""))
return null;

Date d = null;
SimpleDateFormat sf = new SimpleDateFormat(datePattern);
try {
d = sf.parse(s);
} catch (ParseException e) {
}
return d;
}

public String getDate(String[] dateStrings ,String dateStr ){
int size = dateStrings.length;
long[] ArraysMath =new long[size];
//转化为yyyy-MM-dd格式
Date date = this.parseDate(dateStr, "yyyy-MM-dd");
Date dateArray = null;
long  sl = date.getTime(); //获取秒数
long el ;
long ei ;
for(int i = 0;i<size;i++){
dateArray = this.parseDate(dateStrings[i], "yyyy-MM-dd");
el = dateArray.getTime();
ei =  Math.abs(sl - el);
ArraysMath[i] = ei;
}
int index =0;
for(int j =1;j<ArraysMath.length;j++){
if(ArraysMath[index]>ArraysMath[j]){
index = j;
}
}

return dateStrings[index];
}