Duvida calculo data

14 respostas
M

ola pessoal, tenho um duvida sobre datas
a primeira data o usuario vai digitar, a segunda data eu defino ela, como “01/01/2000” …
dae preciso calcular a diferenca entre a data digitada e esta data definida …
quando crio a data : Date d2 = new Date(“01/01/2000”); ele mostra a mensagem :

Note: C:\eclipse\workspace\coren_crt\codigo_barra.java uses or overrides a deprecated API.
Note: Recompile with -deprecation for details.

como faco pra definir essa 2º data ??
e como calcular a diferenca em dias das 2 datas, por exemplo, se o usuario digitar a seguinte data : 10/01/2000 , aparecer a mensagem “10 dias” …

14 Respostas

Cabral

Cara eu uso da seguinte maneira, só que utilizando um Calendar, acredito eu que seja mais fácil para manipular datas.

public static int calcularDiferencaEmDias(Calendar dataAnterior, Calendar dataPosterior){
		
		return  (int)((dataPosterior.getTimeInMillis() - dataAnterior.getTimeInMillis()) / (24*60*60*1000));
		
	}

Ricardo Cabral

T

Se puder, use a biblioteca Joda-Time.

http://joda-time.sourceforge.net/

Você vai ver que muitas das manipulações correntes de data e hora são muito chatas de se fazer corretamente só com as bibliotecas do JDK. É melhor deixar isso para os profissionais.

C

Em relação a Date d2 = new Date(“01/01/2000”) está deprecation pois
não se utiliza mais esse tipo de padrão no Java. Se vc visualizar a API vc irá verificar que quase todos os metodos estão assim, com exceção de getTime() entre outros

M

ola christielencc

como devo fazer entao pra definir esta data …

C

Pra criar um java.util.Date a partir de uma String:

SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");
    String str = "09/01/2007";

     Date data = formatador.parse(str);
M

ok , coloquei deste jeito conforme acima e da o erro na hora de compilar :

C:\eclipse\workspace\coren_crt\coren002.java:1027: unreported exception java.text.ParseException; must be caught or declared to be thrown
Date fator = formatador.parse(str);
^

M

ah, sai errado acima, mas o " ^ " esta sobre o 1º parenteses de (str) …

renomoto

Vc deve tratar a exceção com try{ } catch {}
da exception java.text.ParseException ou um thrown

Abs!

M

mas uma duvida, nao tem a ver com o topico, mas surgiu agora …

como eu faco pra definir o tamanho de uma String ?? preciso que uma String tenha o tamanho máximo de 10 caracteres …
e que o valor dela seja preenchido com zeros a partir da esquerda para a direita, ou seja, “[telefone removido]” … dae preciso que uma outra string com valor qualquer, por exemplo “123” , seja incluida nesta primeira string de 10 caracteres a partir da direita para a esquerda, ficando assim : “[telefone removido]”

como faco isso ??

obrigado por tudo , a parte da data deu certo …

C
public class Teste {

	public static void main(String[] args) {
		String valor = "123";
		String preencherZero = "";
		
		int numeroPreenchidos = valor.length();
		int preencher = 10 - numeroPreenchidos;
		
		for (int i = 0; i &lt preencher; i++) {
			preencherZero+="0";
		}
		
		String correto = preencherZero+valor;
		System.out.println("Correto: " + correto + "\nTamanho: " + correto.length());
	}
}
renomoto

So complementando a resposta… em Java nao eh possivel definir o tamanho de um String.

Abs!

M

ok deu certo …

e para tirar valores, por exemplo, tenho o valor 123,45 …

multipliquei por 100 para ficar 12345 , para considerar todos os valores, mas ao multiplicar, retornou 12345.00 ???

M

seria como mudar uma variavel double para int …
para desconsiderar os valores decimais …

M

e para inserir determinados valores numa string numa determinada posicao da string, como eu faco …

Criado 26 de março de 2007
Ultima resposta 26 de mar. de 2007
Respostas 14
Participantes 5