两个人之间的日历与 java.Calendar

我必须制定一个方法来计算两个日期之间有多少访客参加。这是我为访问者设置值的方法:


    System.out.println("Ingrese dia de la visita: ");

    fechaVisita.set(Calendar.DAY_OF_MONTH, txt.nextInt());

    System.out.println("Ingrese mes de la visita: ");

    fechaVisita.set(Calendar.MONTH, txt.nextInt());

    System.out.println("Ingrese año de la visita: ");

    fechaVisita.set(Calendar.YEAR, txt.nextInt());

在这里,我如何设置搜索的开始日期和结束日期:


    System.out.println("Ingrese dia desde: ");

    fechaDesde.set(Calendar.DAY_OF_MONTH, txt.nextInt());

    System.out.println("Ingrese mes desde: ");

    fechaDesde.set(Calendar.MONTH, txt.nextInt());

    System.out.println("Ingrese año desde: ");

    fechaDesde.set(Calendar.YEAR, txt.nextInt());

    System.out.println("Ingrese dia hasta: ");

    fechaHasta.set(Calendar.DAY_OF_MONTH, txt.nextInt());

    System.out.println("Ingrese mes hasta: ");

    fechaHasta.set(Calendar.MONTH, txt.nextInt());

    System.out.println("Ingrese año hasta: ");

    fechaHasta.set(Calendar.YEAR, txt.nextInt());

然后,我将正确的方法称为“recaudacion”:


    public int recaudacion(Calendar p_fechaDesde, Calendar p_fechaHasta)

    { 

        int cont = 0;

        for(int i=0; i<this.getVisitantes().size(); i++)

        {

           if(p_fechaDesde.after(((Visitante)this.getVisitantes().get(i)).getFechaVisita()) && p_fechaHasta.before(((Visitante)this.getVisitantes().get(i)).getFechaVisita()))

            {

                cont++;

            }

        }

    return cont;

    }

但这不起作用,条件永远不是真的,我不知道为什么即使我把假值仍然是假的。我也试过这个:


    public int recaudacion(Calendar p_fechaDesde, Calendar p_fechaHasta)

    { 

        int cont = 0;

        for(int i=0; i<this.getVisitantes().size(); i++)

        {

           if(p_fechaDesde.compareTo(((Visitante)this.getVisitantes().get(i)).getFechaVisita()) > 0 &&

           p_fechaHasta.compareTo(((Visitante)this.getVisitantes().get(i)).getFechaVisita()) < 0)

            {

                cont++;

            }

        }

    return cont;

    }

但也不起作用。我不知道我错过了什么,理论上必须有效,但没有......


慕的地6264312
浏览 156回答 3
3回答

繁星点点滴滴

我之前和之后都以相反的方式使用。这是解决方案:public int recaudacion(Calendar p_fechaDesde, Calendar p_fechaHasta){&nbsp;&nbsp; &nbsp; int cont = 0;&nbsp; &nbsp; for(int i=0; i<this.getVisitantes().size(); i++)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp;if(p_fechaDesde.before(((Visitante)this.getVisitantes().get(i)).getFechaVisita()) && p_fechaHasta.after(((Visitante)this.getVisitantes().get(i)).getFechaVisita()))&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cont++;&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }return cont;}

翻翻过去那场雪

我想添加方法 getTime():&nbsp;if(p_fechaDesde.getTime().after(((Visitante)this.getVisitantes().get(i))&nbsp; &nbsp; &nbsp;.getFechaVisita().getTime()) &&&nbsp; &nbsp;&nbsp;p_fechaHasta.getTime().before(((Visitante)this&nbsp; &nbsp; &nbsp;.getVisitantes().get(i)).getFechaVisita().getTime))

慕运维8079593

在数字中转换日期并比较数字&nbsp;Long value1 = fechaVisita.getTimeInMillis();&nbsp;Long value2 = fechaDesde.getTimeInMillis();&nbsp;Long visitante = Calendar.getTimeInMillis();&nbsp;value1 < visitante < value2
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java