试图解决难题,但运气不佳。
我有一个日期列表和一个传递给函数的Date对象:
function void dateSorting(List<Date> dateList, Date newDate);
基于newDate,我需要找出此newDate适合在列表的两个索引之间。
所以例如
如果日期是1/3/2015,并且列表包含:
INDEX, VALUE
0 , 5/1/2015
1 , 20/2/2015
2 , 15/3/2015
3 , 11/4/2015
然后函数将打印/返回1和2以及相应的日期20/2/2015和15/3/2015。
我一直在网上搜寻伪代码和示例,但没有运气。我最近到达的日期离newDate最近的日期对我没有帮助。
任何帮助表示赞赏。
在这里,我给你一个。
void dateSorting(List<Date> dateList, Date newDate) {
for (int i = 0; i < dateList.size(); i++) {
if (newDate.before(dateList.get(i))) {
if (i != 0)
System.out.println("Previous index:" + (i - 1));
System.out.println("Next index:" + i);
break;
} else if (i == dateList.size() - 1) {
System.out.println("Previous index:" + i);
}
}
}
我像这样测试了我的代码:
public static void main(String[] args) throws ParseException {
List<Date> dateList = new ArrayList<Date>();
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
dateList.add(sdf.parse("5/1/2015"));
dateList.add(sdf.parse("20/2/2015"));
dateList.add(sdf.parse("15/3/2015"));
dateList.add(sdf.parse("11/4/2015"));
System.out.println("Testing with 1/3/2015.");
dateSorting(dateList, sdf.parse("1/3/2015"));
System.out.println("Testing with 1/1/2015.");
dateSorting(dateList, sdf.parse("1/1/2015"));
System.out.println("Testing with 12/4/2015.");
dateSorting(dateList, sdf.parse("12/4/2015"));
}
我得到以下结果:
Testing with 1/3/2015.
Previous index:1
Next index:2
Testing with 1/1/2015.
Next index:0
Testing with 12/4/2015.
Previous index:3
我相信这会对您有所帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句