Olá,
Basta vc instancia um objeto da classe que vai calcular as datas e passar as var contendo as datas.
Vc instancia a classe da verificação das datas dentro da classe Frame.
É isso ou interpretei errado?
class Validacao
{
public boolean validaDatas(String data1,String data2)
{
//validar
}
}
pubic class MeuFrame extends Frame
{
String dataIni,dataFim;
Validacao validacao=null;
public MeuFrame()
{
dataIni="01/01/2005";
dataFim="02/02/2005";
}
public boolean validar()
{
//aqui ele verifica se não tem uma instancia ja criada
if(validacao==null)
{validacao=new Validacao();}
validacao.validaDatas(dataIni,dataFim);
}
}
import javax.swing.JOptionPane;
/*
* Frame_Prazo.java
*
* Created on 6 de Julho de 2005, 13:46
*/
public class Frame_Prazo extends javax.swing.JFrame {
/** Creates new form Frame_Prazo */
public Frame_Prazo() {
initComponents();
}
public void setdtPostagem(String parametro)
{
dtPostagem.setText(parametro);
}
public String getdtPostagem()
{
return dtPostagem.getText();
}
public void setdtEntrega(String parametro)
{
dtEntrega.setText(parametro);
}
public String getdtEntrega()
{
return dtEntrega.getText();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc=" Generated Code ">
private void initComponents() {
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
dtPostagem = new javax.swing.JTextField();
dtEntrega = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton();
getContentPane().setLayout(null);
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jLabel1.setText("Data Postagem:");
getContentPane().add(jLabel1);
jLabel1.setBounds(20, 80, 90, 15);
jLabel2.setText("Data Entrega:");
getContentPane().add(jLabel2);
jLabel2.setBounds(20, 120, 80, 15);
dtPostagem.setName("dtPostagem");
getContentPane().add(dtPostagem);
dtPostagem.setBounds(127, 80, 70, 21);
dtEntrega.setName("dtEntrega");
getContentPane().add(dtEntrega);
dtEntrega.setBounds(127, 120, 70, 21);
jButton1.setText("Verificar");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
getContentPane().add(jButton1);
jButton1.setBounds(20, 170, 90, 25);
pack();
}
// </editor-fold>
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here
Calcula_Dias diferenca_dias = new Calcula_Dias();
//diferenca_dias.calcIntervaloDias();
//JOptionPane.showMessageDialog(null,
//"Data de Entrega menor que a Data de Postagem!",
//"Aviso!",
//JOptionPane.INFORMATION_MESSAGE);
//System.exit(0);
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
Frame_Prazo frame_prazo = new Frame_Prazo();
frame_prazo.setSize(300,300);
frame_prazo.setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JTextField dtEntrega;
private javax.swing.JTextField dtPostagem;
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
// End of variables declaration
}
e
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.GregorianCalendar;
/**
* @author jp joao.paulo.limberger@terra.com.br
* Cálculos e transformações diversas utilizando data.
* Data: 12/06/2003
*/
public class Calcula_Dias {
// Formatar para dd/mm/aaaa
SimpleDateFormat formatador1 = new SimpleDateFormat("dd/MM/yyyy");
// Formatar para dd.mm.aa
SimpleDateFormat formatador2 = new SimpleDateFormat("dd.MM.yy");
//public static void main(String[] args) {
//new Calcula_Dias();
//}
// Construtor
public Calcula_Dias() {
java.util.Date data1 = null;
java.util.Date data2 = null;
java.util.GregorianCalendar gc1 = null;
java.util.GregorianCalendar gc2 = null;
try {
System.out.println(
"Dias no intervalo 1: "
+ calcIntervaloDias("01/07/2005", "31/07/2005") + " dia(s)" );
/*System.out.println(
"Dias no intervalo 2: "
+ calcIntervaloDias("08/07/2004", "10/07/2004") + " dia(s) ");*/
} catch (Exception e) {
System.out.println("Erro calculo intervalo datas: " + e);
}
}
/**
* Method calcIntervaloDias.
* @param d1 Data Inicial String no formato dd/mm/aaaa
* @param d2 Data Final String no formato dd/mm/aaaa
* @return long quantidade de dias entre as duas datas
*/
public long calcIntervaloDias(String d1, String d2) throws Exception {
Date dataIni = formatador1.parse(d1);
Date dataFim = formatador1.parse(d2);
return calcIntervaloDias(dataIni, dataFim);
}
/**
* Method calcIntervaloDias.
* @param dataIni Data Inicial
* @param dataFim Data Final
* @return long quantidade de dias entre as duas datas
*/
public long calcIntervaloDias(Date dataIni, Date dataFim) {
GregorianCalendar c1 = new GregorianCalendar();
c1.setTime(dataIni);
GregorianCalendar c2 = new GregorianCalendar();
c2.setTime(dataFim);
return (
(c2.getTime().getTime() - c1.getTime().getTime())
/ 1000
/ 60
/ 60
/ 24
);
}
}
Basta pegar o valor do JTextField com getText ou getString… nao lembro direito.
e colocar nos parametros do método calcIntervaloDias(String arg1, String arg2).
Assim:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here
Calcula_Dias diferenca_dias = new Calcula_Dias();
try{ System.out.println(diferenca_dias.calcIntervaloDias(dtPostagem.getText(),dtEntrega.getText()));
}catch(Exception e){}
//JOptionPane.showMessageDialog(null,
//"Data de Entrega menor que a Data de Postagem!",
//"Aviso!",
//JOptionPane.INFORMATION_MESSAGE);
//System.exit(0);
}
Na classe Calcula_Dias ainda ocorre o erro:
calcIntervaloDias(java.util.Date,java.util.Date)in Calcula_Dias cannot be applied to(java.lang.String,java.lang.String)