Salve ho fatto una classe Data che vuole (giorno mese,anno) con due metodi
bisestile() : che dice se l'anno è bisestile (anche se c'è un errore perchè gli anni %100 che non sono anni%400 non sono bisestili).
addgiorni(giornidaaggiungere): che restituisce la data aggiungendo i giorni.
Questa è la classe:
Questa è la classe ProvaData:codice:public class Data { private int giorno,mese,anno ; public Data(int giorno, int mese, int anno) { super(); this.giorno = giorno; this.mese = mese; this.anno = anno; } public int get_mese(){ return mese; } public String bisestile(){ String year ; if (anno%4==0 && anno%400==0){ year="E' bisestile"; } else{ year="Non è bisestile"; } return year; } public void addDay(int giorni){ giorno =giorno +giorni; if(mese==1 || mese ==3 || mese ==5 ||mese ==7 ||mese==8 ||mese ==10 ||mese ==12){ if(giorno>31){ mese=mese+1; if(mese>12){ anno =anno+1; mese = mese - 12 ; } giorno= giorno-31; } } else if(mese==4 || mese ==6 || mese ==9 ||mese ==11){ if(giorno>30){ mese=mese+1; giorno= giorno-30; } } else if(mese==2){ if(bisestile().equals("E' bisestile")){ if(giorno>29){ mese=mese+1; giorno= giorno-29; } } else{ if(giorno>28){ mese=mese+1; giorno= giorno-28; } } } System.out.println("Aggiungeno i giorni la data diventa :" + giorno+ " " + mese +" "+anno+"."); }
tutto funziona ....codice:public class ProvaData { public static void main(String[] args) { Data d=new Data(1,2,2000); System.out.println(d.bisestile()); d.addDay(35); } }
ora vorrei utilizzarla tramite jframe con windows builder ho fatto :
Ora il bottone dovrebbe aprire una finestra e dirmi se l'anno è bisestile e la nuova data , i problemi sono 2 per utilizzare i metodi di Data ho dovuto estendere la classe FinestraProvaData ma ho problemi con il costruttore di super , inoltre non so copme usare il metodo addday() perchè eseguo un System.out.println quando avrei invece bisogno che mi restituisse tre int da utilizzare nella finestra del risultato.codice:import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JTextField; import javax.swing.JButton; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; public class FinestraProvaData extends Data { private JFrame frmDataAggiungiGiorni; private JTextField txgiorno; private JTextField txmese; private JTextField txanno; private JTextField txgiorniadd; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { FinestraProvaData window = new FinestraProvaData(); window.frmDataAggiungiGiorni.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the application. */ public FinestraProvaData() { super( giorno, mese, anno); initialize(); } /** * Initialize the contents of the frame. */ private void initialize() { frmDataAggiungiGiorni = new JFrame(); frmDataAggiungiGiorni.setTitle("Data Aggiungi Giorni"); frmDataAggiungiGiorni.setBounds(100, 100, 450, 300); frmDataAggiungiGiorni.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frmDataAggiungiGiorni.getContentPane().setLayout(null); JLabel lblGiorno = new JLabel("Giorno"); lblGiorno.setBounds(28, 38, 56, 15); frmDataAggiungiGiorni.getContentPane().add(lblGiorno); JLabel lblMese = new JLabel("Mese"); lblMese.setBounds(150, 38, 50, 15); frmDataAggiungiGiorni.getContentPane().add(lblMese); txgiorno = new JTextField(); txgiorno.setColumns(10); txgiorno.setBounds(91, 36, 56, 19); frmDataAggiungiGiorni.getContentPane().add(txgiorno); txmese = new JTextField(); txmese.setColumns(10); txmese.setBounds(195, 36, 56, 19); frmDataAggiungiGiorni.getContentPane().add(txmese); txanno = new JTextField(); txanno.setColumns(10); txanno.setBounds(313, 36, 56, 19); frmDataAggiungiGiorni.getContentPane().add(txanno); JLabel lblAnno = new JLabel("Anno"); lblAnno.setBounds(265, 38, 56, 15); frmDataAggiungiGiorni.getContentPane().add(lblAnno); JLabel lblInserireGiorniDa = new JLabel("Inserire Giorni da aggiungere alla data"); lblInserireGiorniDa.setBounds(28, 104, 281, 15); frmDataAggiungiGiorni.getContentPane().add(lblInserireGiorniDa); txgiorniadd = new JTextField(); txgiorniadd.setBounds(313, 102, 50, 19); frmDataAggiungiGiorni.getContentPane().add(txgiorniadd); txgiorniadd.setColumns(10); JButton btnDimmiSe = new JButton("Dimmi se è bisestile e dimmi la nuva data"); btnDimmiSe.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { int g=Integer.parseInt(txgiorno.getText()); int m=Integer.parseInt(txmese.getText()); int a=Integer.parseInt(txanno.getText()); int gadd=Integer.parseInt(txgiorniadd.getText()); Data d=new Data(g,m,a); JOptionPane.showMessageDialog(frmDataAggiungiGiorni, txgiorno.getText()+d.bisestile()+"La Nuova Data è:"); } }); btnDimmiSe.setBounds(48, 168, 340, 25); frmDataAggiungiGiorni.getContentPane().add(btnDimmiSe); } }

Rispondi quotando