Calculando a Diferença entre datas,exemplo bobo mas que ajuda,sem validação dos campos JTextField

6 respostas
G
import javax.swing.JFrame;

import javax.swing.JTextField;

import javax.swing.JLabel;

import javax.swing.JButton;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.awt.event.ActionListener;

import java.awt.event.ActionEvent;

/**
*Classe que calcula a diferença
*entre datas,sem validação dos campos
*apenas um bom exemplo para que
*facilita o entendimento
*/

public class ComparaData extends JFrame implements ActionListener {

private JTextField t1,t2,t3;

private JLabel l1,l2,l3;

private JButton b1;

private SimpleDateFormat formatador;

private String data1;

private String data2;

/*
*1-Configurar o JFrame
*2-Instanciar e configurar as JLabel
*3-Instanciar a JTextField
*4-Instanciar as JButtons
*5-Inserir os objetos no container
*/
public ComparaData(){

//Configurando o JFrame

setTitle(Datas);

setLocation(180,210);

setSize(295,175);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setDefaultLookAndFeelDecorated(true);

getContentPane().setLayout(null);
//Instanciando a JLabel

l1 = new JLabel(Data);

l1.setBounds(50,10,65,25);

l2 = new JLabel(Data);

l2.setBounds(50,40,65,25);

l3 = new JLabel(Resultado);

l3.setBounds(50,70,85,25);
//Instanciando a JTextField

t1 = new JTextField();

t1.setBounds(135,10,85,25);

t2 = new JTextField();

t2.setBounds(135,40,85,25);

t3 = new JTextField();

t3.setBounds(135,70,85,25);

t3.setEditable(false);
//Instanciando e Configurando o JButton

b1 = new JButton(Calcular);

b1.setBounds(95,115,95,25);

b1.addActionListener(this);
//Inserindo Objetos no Container

getContentPane().add(l1);

getContentPane().add(t1);

getContentPane().add(l2);

getContentPane().add(t2);

getContentPane().add(l3);

getContentPane().add(t3);

getContentPane().add(b1);

} // fim do método construtor
public void setData1(String data){

data1 = data;

}
public void setData2(String data){

data2 = data;

}
/*

*1-Instanciar um objeto da classe SimpleDateFormat

*2-Tranformar String em Date

*3-Realizar os calculos necessários

*4-Retornar os dias de diferença calculados

*/

public long getDiferenca(){

//1

SimpleDateFormat formatter = new SimpleDateFormat(ddMMyyyy);

Date d1=null;

Date d2=null;

try {

//2

d1 =  (Date)formatter.parse(data1);

d2 =  (Date)formatter.parse(data2);

}

catch(java.text.ParseException ex){

System.out.println(""+ex.getMessage());

}

//3

long dt = (d2.getTime() - d1.getTime()) + 3600000;

long dias = (dt / 86400000L); //+ 1;

//4

return dias;

}
/*

*1-Setar Data1 e Data2 com os valores da caixa de texto

*2-Enviar para t3,o método getDiferenca

*/

public void actionPerformed(ActionEvent e){

if(e.getSource().equals(b1)){

setData1(t1.getText());

setData2(t2.getText());

t3.setText(""+getDiferenca());

}

}
public static void main(String args[]){

ComparaData data = new ComparaData();

data.setVisible(true);

}

}

6 Respostas

Eduardo_Bregaida

Oq é isso? Ta dando algum erro?
Se tiver é pq o import ta escrito errado: imimport javax.swing.JFrame;

G

Eu estava treinando e foi só um exemplo bobo que coloquei no fórum.Nada de excepcional.

Eduardo_Bregaida

ah tah, achei q era um problema, malz :smiley: bom mas quem tiver com o problema no import já ta lá a solução rsss :lol:

G

OK,um abraço e desculpa

E

Cara, eu usei apenas uma parte do seu código:

long dt = (primeiradata.getTime() - segundadata.getTime()) + 3600000; 
long dias = (dt / 86400000L); //+ 1;

E resolvi o meu problema aqui, valeu pela dica.

Até

G

eniosb:
Cara, eu usei apenas uma parte do seu código:
Sinta-se a vontade meu caro,estamos aqui para trocar experiências!!!

long dt = (primeiradata.getTime() - segundadata.getTime()) + 3600000; 
long dias = (dt / 86400000L); //+ 1;

E resolvi o meu problema aqui, valeu pela dica.

Até

Criado 1 de fevereiro de 2007
Ultima resposta 8 de fev. de 2007
Respostas 6
Participantes 3