Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    aiuto input

    salve ragazzi mi serve una mano per perfezionare il codice..io vorrei inserire da tastiera i valori che mi servono..posto il codice

    package Data;



    /** @author user **/



    public class DataModel {

    private int iGiorno,

    iMese,

    iAnno;



    public DataModel() {

    iGiorno=1;

    iMese=1;

    iAnno=1900;

    }



    public DataModel(String date){

    int Dati[]=ConvertStringToInt(date);

    int gg,mm,aa;

    gg=Dati[0];

    mm=Dati[1];

    aa=Dati[2];

    if(ControlloData(gg,mm,aa)){

    iGiorno=gg;

    iMese=mm;

    iAnno=aa;

    }

    else{

    iGiorno=1;

    iMese=1;

    iAnno=1900;

    }

    }



    public DataModel(int gg, int mm, int aa) {

    if(ControlloData(gg,mm,aa)){

    iGiorno=gg;

    iMese=mm;

    iAnno=aa;

    }

    else{

    iGiorno=1;

    iMese=1;

    iAnno=1900;

    }

    }



    public void setData(int Giorno,int Mese, int Anno) {

    if(ControlloData(Giorno,Mese,Anno)){

    iGiorno=Giorno;

    iMese=Mese;

    iAnno=Anno;

    }

    }



    public void setData(String DataNuova) {

    int Dati[]=ConvertStringToInt(DataNuova);

    int gg,mm,aa;

    gg=Dati[0];

    mm=Dati[1];

    aa=Dati[2];

    if(ControlloData(gg,mm,aa)){

    iGiorno=gg;

    iMese=mm;

    iAnno=aa;

    }

    }



    public int getiGiorno() {

    return iGiorno;

    }



    public int getiMese() {

    return iMese;

    }



    public int getiAnno() {

    return iAnno;

    }



    public static boolean ControlloData(int gg, int mm, int aa){

    boolean control=true;

    if (mm<13 && mm>0){

    if (mm==4 || mm==6 || mm==9 || mm==11){

    if (gg<31 || gg>0){

    control=true;

    }

    }

    else if(mm==2){

    if((aa%4==0 && aa%100!=0) || (aa%400==0)){

    if (gg<30 || gg>0){

    control=true;

    }

    }

    }

    else{

    if (gg<32 || gg>0){

    control=true;

    }

    }

    }

    else{

    control=false;

    }

    return control;

    }



    private int[] ConvertStringToInt(String DataNuova){

    int Dati[]=new int[3];

    int iFormDate=DataNuova.length();

    if (iFormDate==10){

    String [] sp = DataNuova.split("/");

    Dati[0]=Integer.parseInt(sp[0]);

    Dati[1]=Integer.parseInt(sp[1]);

    Dati[2]=Integer.parseInt(sp[2]);

    }

    else if(iFormDate==8){

    String [] sp = DataNuova.split("/");

    Dati[0]=Integer.parseInt(sp[0]);

    Dati[1]=Integer.parseInt(sp[1]);

    Dati[2]=Integer.parseInt("19"+sp[2]);

    }

    return Dati;

    }



    // Calcola la dati in giorni a partire dalla data 00/00/0000

    private int CalcDataGior(){

    //calcolo quanti anni bisestili ci sono

    int iNBis=0;

    for (int i=0;i<this.iAnno;i+=1){

    if((i%4==0 && i%100!=0) || (i%400==0)){

    iNBis+=1;

    }

    }

    //Lavoro sull'anno in corso

    //Trovo il numero di giorni nell'ultimo anno

    int iGiornUltAnn=0;

    for (int i=1; i<this.iMese;i+=1){

    if(i==2){

    if((this.iAnno%4==0 && this.iAnno%100!=0) || (this.iAnno%400==0)){

    iGiornUltAnn=iGiornUltAnn+29;

    }

    else{

    iGiornUltAnn=iGiornUltAnn+28;

    }

    }

    else if(i==4 || i==6 || i==9 || i==11){

    iGiornUltAnn=iGiornUltAnn+30;

    }

    else{

    iGiornUltAnn=iGiornUltAnn+31;

    }

    }

    int DatInGiorn;

    //calcolo giorni da data 00/00/0000

    DatInGiorn=iGiornUltAnn+this.iGiorno+((this.iAnno-1)*365)+iNBis;



    return DatInGiorn;

    }



    public int ContaGiorni(DataModel date){

    //Calcolo la data in giorni dell due date

    int DatGiorn1=this.CalcDataGior();

    int DatGiorn2=date.CalcDataGior();



    // calcolo la differenza tra le date in giorni

    int iDifferenza;

    iDifferenza=Math.abs((DatGiorn1-DatGiorn2));



    return iDifferenza;

    }

    }




    package Data;



    /** @author user **/



    public class DataControl {



    /**

    * @param args

    */

    public static void main(String[] args) {

    DataModel data1=new DataModel(),

    data2=new DataModel(1,1,1992),

    data3=new DataModel("01/01/1993");



    int diff1=data1.ContaGiorni(data2);

    int diff2=data2.ContaGiorni(data3);



    System.out.println("Differenza prima data: "+diff1+" giorni");

    System.out.println("Differenza seconda data: "+diff2+" giorni");

    }



    }

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    1. Usa il tag CODE, non si capisce un tubo
    2. Titolo troppo generico
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    86
    Per inserire i valori da tastiera cosa intendi?
    Shashia

  4. #4
    Originariamente inviato da Sashias
    Per inserire i valori da tastiera cosa intendi?
    Intendo che vorrei mi chiedessi di inserire i valori dell'anno del mese e del giorno e se non sono caratteri numerici gestirei l'eccezione col costrutto try catch controllando che nell'input ci siano solo caratteri numerici.

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480

    Moderazione

    Originariamente inviato da Alex'87
    1. Usa il tag CODE, non si capisce un tubo
    2. Titolo troppo generico
    Quoto e sottoscrivo, e invito l'autore della discussione a tenere a mente questi suggerimenti per le discussioni future.

    Qui correggo io...
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    Per inserire dati da tastiera per primo ti devi importare il package
    codice:
    import java.util.Scanner;
    Dopo dichiari il tuo scanner in modo che riceva input da tastiera

    codice:
    Scanner sc= new Scanner(System.in);
    Dopo basta che alla variabile ci metti: sc.nextInt();(Int se è un intero, Double, char ecc.)
    Per esempio se la variabile è un intero
    codice:
    int x = sc.nextInt();

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    86
    Puoi utilizzare anche la classe JoptionPanel della classe swing ;-).
    Shashia

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.