Ajuda em datas

olá a todos, estou precisando subtrair duas datas uma é a data de devolução que chamo de data1 e a outra é a data do sistema que chamo de data2, possuo um metodo dataDiff que consegui aqui no guj com um colega, mas quando passo as variaveis para o metodo retornar a diferença de dias ele da um erro que encontrou int e requer java.util.Date como reparo este erro? agradeço ajuda.

        //calculando dias de atraso....
            
             //testando data
             
     
    
    //comparando...................
    dataFormatada = new String(palavra.getDtDev()); 
    DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
                            try {

                                data1 = (Date)df.parse(dataFormatada);
                            } catch (ParseException ex) {
                                ex.printStackTrace();
                            }
    Date data2= new Date();//pego a data do sistema
    
     DiffData daoDt = new DiffData();
     
          
     Date dataLow = data1;
     Date dataHigh = data2;
     
     //transformando a data paara inteiro
     
     
     Date nova = daoDt.dataDiff( dataLow, dataHigh);

o metodo para calcular a diferença …

 public static int dataDiff(java.util.Date dataLow, java.util.Date dataHigh){   

Date nova = daoDt.dataDiff( dataLow, dataHigh);

Date nova espera receber uma data, mas o dataDiff (que deveria ser acessado de maneira static pela assinatura) retorna um int.

O que você precisa fazer é trabalhar com o int, acredito.

Abraços

Estou com este mesmo problema , alguem pode me ajudr ???

Tenho uma data inicial e uma data final , gostaria de calcular o numero de dias entre as duas…

Ah e gostaria de sabe tbm como faço para testar a partir de uma data , qual dia da semana ela representa ?

[quote=kaede]olá a todos, estou precisando subtrair duas datas uma é a data de devolução que chamo de data1 e a outra é a data do sistema que chamo de data2, possuo um metodo dataDiff que consegui aqui no guj com um colega, mas quando passo as variaveis para o metodo retornar a diferença de dias ele da um erro que encontrou int e requer java.util.Date como reparo este erro? agradeço ajuda.

        //calculando dias de atraso....
            
             //testando data
             
     
    
    //comparando...................
    dataFormatada = new String(palavra.getDtDev()); 
    DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
                            try {

                                data1 = (Date)df.parse(dataFormatada);
                            } catch (ParseException ex) {
                                ex.printStackTrace();
                            }
    Date data2= new Date();//pego a data do sistema
    
     DiffData daoDt = new DiffData();
     
          
     Date dataLow = data1;
     Date dataHigh = data2;
     
     //transformando a data paara inteiro
     
     
     Date nova = daoDt.dataDiff( dataLow, dataHigh);

o metodo para calcular a diferença …

public static int dataDiff(java.util.Date dataLow, java.util.Date dataHigh){ [/quote]

Ok, você precisa da diferença de Dias e é isso que a função dataDiff faz ele retorna para você um inteiro que equivale a diferença de dias.

int iDiferenca = daoDt.dataDiff( dataLow, dataHigh);  

Agora é só correr para o abraço!

[quote=analuiza.fagundes]Estou com este mesmo problema , alguem pode me ajudr ???

Tenho uma data inicial e uma data final , gostaria de calcular o numero de dias entre as duas…

Ah e gostaria de sabe tbm como faço para testar a partir de uma data , qual dia da semana ela representa ?[/quote]

http://www.exampledepot.com/egs/java.util/DayOfWeek.html

Ok , eu entendi , so que eu queria saber o codigo do metodo que calcula a diferenca de dias , eu nao consegui achar …

consegui resolver meu problema assim:

          //calculando dias de atraso....            
                      
     
           SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); 
           Calendar data1 = Calendar.getInstance(); //aqui sua variavel data1
           Calendar data2 = Calendar.getInstance(); //aqui sua variavel data2
           try { 
                  data1.setTime(sdf.parse(txtDtDev.getText())); 
                  data2.setTime(sdf.parse(txtDtAtual.getText())); 
               } catch (java.text.ParseException e ) {} 
           int dias = data2.get(Calendar.DAY_OF_YEAR) - 
           data1.get(Calendar.DAY_OF_YEAR); 
           txtAtraso.setText(String.valueOf(dias)); //aqui retorna a diferença

Espero ajude…batalhei para chegr ai…rs…

[quote=analuiza.fagundes]Estou com este mesmo problema , alguem pode me ajudr ???

Tenho uma data inicial e uma data final , gostaria de calcular o numero de dias entre as duas…

Ah e gostaria de sabe tbm como faço para testar a partir de uma data , qual dia da semana ela representa ?[/quote]

Analuiza, as soluções dadas no seu post não serviram para você? Se não serviram, porque não respondeu por lá mesmo? Dê continuidade ao seu tópico.

keade, já que você está trabalhando com datas, sugiro fortemente que você trabalhe com a biblioteca do JODA-Time. No post da AnaLuiza, postei um exemplo de como fica esse cálculo usando a biblioteca. Veja que fica ridiculamente simples:

LocalTime start = new LocalTime("10:00:00");
LocalTime end   = new LocalTime("11:30:00");
Period period   = new Period(start, end);

System.out.println("Entre as duas datas há: " + period.getDays() + " dias,  " 
    + period.getHours() + " horas "
    + period.getMinutes() + " minutos.");

Oi Vinicius, realmente eu estava sem saber como resolver o meu tópico por isso pedi ajda aqui, mas como ninguem ainda tinha me ajudado a resolver procurei tambem em outros lugares e acabei aprendendo, não tinha dado tempo de postar aqui que já tinha resolvido quando vi uma menssagem de nossa colega e resolvi postar o que consegui para ela…desculpe o mal entendido.
Quando a biblioteca do JODA-Time muito legal vou dar uma olhada sim agradeço a sua ajuda pois vou precisar dela abraços Kaede.

Fiz um programinha para calcular a diferenca de duas datas. Para quem nao quer usar o JODA Time…

	private String getDiffTime(Date date1,Date date2){
		Calendar inicio = Calendar.getInstance();
		Calendar fim = Calendar.getInstance();
		inicio.setTime(date1);
		fim.setTime(date2);
		String periodo;
		long milliseconds,sec,min,hour,day,mnths,yrs;
		long tsTime1 = inicio.getTimeInMillis();
		long tsTime2 =fim.getTimeInMillis();
		milliseconds = (long)(tsTime2-tsTime1);
		//Verifica se o numero e negativo ou positivo
		if(milliseconds<0){
			periodo = "atras";
			milliseconds = milliseconds*(-1);
		}else{
			periodo = "no futuro";
		}
		sec = (long)(milliseconds / 1000);//To Seconds
		min = (sec / 60); //To Minutes
		hour = (min/60);//To Hours
		day = (hour/ 24); //To days
		mnths = (day /30); //To Months
		yrs = (mnths / 12); //To Years
		
		//Grava a sobra
		long minSobra =(sec%60);
		long hourSobra = (min%60);
		long daySobra = (hour% 24);
		long mnthsSobra = (day %30);
		long yrsSobra = (mnths % 12);
		if((int)sec<100){
			return (int)sec+" Segundo(s) "+periodo;
		}else{
			if((int)min<60){
				return (int)min+" Minuto(s) e  "+minSobra+" Segundo(s) "+periodo;
			}else{
				if((int)hour<60){
					return (int)hour+" Hora(s) e  "+hourSobra+" Minuto(s) "+periodo;
				}else{
					if((int)day<24){
						return (int)day+" Dia(s) "+daySobra+" Hora(s) "+periodo;
					}else{
						if((int)mnths<12){
							return (int)mnths+" Mes(es) e "+mnthsSobra+" Dia(s) "+periodo;
						}else{
							return (int)yrs+" Ano(s) e "+yrsSobra+" Mes(es) "+periodo;
						}
					}
				}
			}
		}
	}