我必须制定一个方法来计算两个日期之间有多少访客参加。这是我为访问者设置值的方法:
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;
}
但也不起作用。我不知道我错过了什么,理论上必须有效,但没有......
繁星点点滴滴
翻翻过去那场雪
慕运维8079593
相关分类