• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Little_star

programa para verificar se uma tarefa fica ao mesmo tempo de outro

2 mensagens neste tópico

boas. tenho uma programa que preciso de ver se dadas 2 tarefas, elas ficam sobrepostas uma à outra. o meu problema é que quando vou o código é executado em vez de ir ate 59m e dps mudar de hora vai só ate 30m e muda a hora e no minuto seguinte vai ate 29m e muda a hora.

public class tarefa{

public static void main(String[] args){

tarefa t1 = new tarefa(new Tempo(13, 30),new Tempo(14, 30));

tarefa t2 = new tarefa(new Tempo(14, 00),new Tempo(15, 30));

tarefa t3 = new tarefa(new Tempo(15, 00),new Tempo(16, 30));

boolean intersect1 = t1.intersecta(t2);

System.out.println(intersect1);

boolean intersect2 = t1.intersecta(t3);

System.out.println(intersect2);

}

private Tempo i=null;

private Tempo f=null;

public tarefa (Tempo inicio,Tempo fim){

i=inicio;

f=fim;

}

public String toString(){

StringBuilder sb = new StringBuilder();

sb.append("a tarefa comeca as");

sb.append(i);

sb.append("e acaba as");

sb.append(f);

return sb.toString();

}

public boolean intersecta (tarefa t){

int ih=i.getHora();

int im=i.getMinuto();

int fh=f.getHora();

int fm=f.getMinuto();

int iht=t.i.getHora();

int imt=t.i.getMinuto();

int fht=t.f.getHora();

int fmt=t.f.getMinuto();

int h=ih;

int m=im;

while(h!=fh && m!=fm){

if(h==iht && m == imt)

return true;

m++;

if(m>59){

h++;

m=0;

if( h>=24)

h=0;

}

}

h=iht;

m=imt;

while(h!=fht && m!=fmt){

if(h==ih && m == im)

return true;

m++;

if(m>59){

h++;

m=0;

if( h>=24)

h=0;

}

}

se me pudessem explicar o que esta mal neste código eu agradecia é que não entendo por que vai so ate aos 30m.

obrigado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso o melhor é fazeres debug passo a passo até encontrares onde está o erro.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora