Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用循环Java查找多个日期之间的最大差异_Java - Fatal编程技术网

使用循环Java查找多个日期之间的最大差异

使用循环Java查找多个日期之间的最大差异,java,Java,我想找出几次约会之间最大的区别怎么可能?对此的答案应为01012001-01012011。我想找出两张名单之间最大的日期差距怎么可能 public void Date (){ SimpleDateFormat myFormat = new SimpleDateFormat("ddMMyyyy"); List<String> start = Arrays.asList("01011992","01012001","01012001"); String dateB

我想找出几次约会之间最大的区别怎么可能?对此的答案应为01012001-01012011。我想找出两张名单之间最大的日期差距怎么可能

public void Date (){
    SimpleDateFormat myFormat = new SimpleDateFormat("ddMMyyyy");
    List<String> start = Arrays.asList("01011992","01012001","01012001");
    String dateBeforeString = start.get(2);  
    List<String> end = Arrays.asList("02012001","02012001","01012011");
    String dateAfterString = end.get(2);

    try {        
        Date dateBefore = myFormat.parse(dateBeforeString);
        Date dateAfter = myFormat.parse(dateAfterString);
        long difference = dateAfter.getTime() - dateBefore.getTime();
        daysBetween = (difference / (1000*60*60*24));

        System.out.println("Days: "+daysBetween);
    } catch (Exception e) {
        e.printStackTrace();
    }
}   
公共作废日期(){
SimpleDataFormat myFormat=新的SimpleDataFormat(“ddMMyyyy”);
List start=Arrays.asList(“01011992”、“01012001”、“01012001”);
字符串datebeforesting=start.get(2);
List end=Arrays.asList(“0201001”、“0201001”、“01012011”);
字符串dateAfterString=end.get(2);
试试{
Date dateBefore=myFormat.parse(datebeforesting);
Date dateAfter=myFormat.parse(dateAfter字符串);
长差异=dateAfter.getTime()-dateBefore.getTime();
日间=(差值/(1000*60*60*24));
System.out.println(“天:“+天之间”);
}捕获(例外e){
e、 printStackTrace();
}
}   
尝试以下方法:

 SimpleDateFormat myFormat = new SimpleDateFormat("ddMMyyyy");
        List<String> start = Arrays.asList("01011992", "01012001", "01012001");
        List<String> end = Arrays.asList("02012001", "02012001", "01012011");



        int lastIndex =0;
        long lastValue =0;
        for (int i = 0; i < start.size(); i++) {
            String dateBeforeString = start.get(i);
            String dateAfterString = end.get(i);
            try {
                Date dateBefore = myFormat.parse(dateBeforeString);
                Date dateAfter = myFormat.parse(dateAfterString);
                long difference = dateAfter.getTime() - dateBefore.getTime();
                long daysBetween = (difference / (1000 * 60 * 60 * 24));


                if(lastValue<daysBetween){
                    lastValue=daysBetween;
                    lastIndex = i;
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        System.out.println("result: " +  start.get(lastIndex)+"-"+end.get(lastIndex)+" maxDiff "+lastValue);
SimpleDataFormat myFormat=新的SimpleDataFormat(“ddMMyyyy”);
List start=Arrays.asList(“01011992”、“01012001”、“01012001”);
List end=Arrays.asList(“0201001”、“0201001”、“01012011”);
int lastIndex=0;
长lastValue=0;
对于(int i=0;i如果(lastValueJava对于Javascript就像痛苦对于绘画,Ham对于Hampster一样。它们完全不同。强烈建议有抱负的程序员尝试学习他们试图编写代码的语言名称。当你发布问题时,请适当地标记它。你能更清楚地说明你的问题吗question@CertainPerformance及仓鼠之于汉普斯特就像拼写之于拼写请定义“几个日期之间的最大差异”.您好,您得到的错误是什么,您使用的循环在哪里?欢迎使用stackoverflow,我们不是来帮助您解决家庭作业的,请从开始,然后随意编辑帖子。简单的建议-您必须迭代ArrayList并比较值,在这种情况下,您需要在循环中使用循环,例如提示看起来很有用,但对新成员来说太复杂了,如果他问如何写循环,我不这么认为,他会知道流。他问的是循环,有none@Nonika即使这样,它也不能满足我的要求。在你的例子中,它将整个字符串与另一个字符串进行比较,发现最大的区别是整个字符串。因此,您需要从这些差异最大且索引相同的列表中选择一对?@Nonika我想比较两个列表。例如,第一个字符串和第二个字符串中的第一个索引应该相互比较。它不能是列表开始处的第一个索引和列表结束处的第二个索引。在这种情况下,两个索引的日差最大。你们明白吗?那个么列表“开始”中索引i处的元素和列表“结束”中索引i处的元素相比呢?