Advertisement
hubermlima

Data

Oct 11th, 2018
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.01 KB | None | 0 0
  1. package dataProc;
  2.  
  3. import java.time.LocalDate;
  4.  
  5. public class Data {
  6.  
  7.    private Integer dia;
  8.    private Integer mes;
  9.    private Integer ano;
  10.    private LocalDate dataAtual;
  11.    
  12.    public Data() {
  13.    
  14.        dataAtual = LocalDate.now();
  15.        dia = dataAtual.getDayOfMonth();
  16.        mes = dataAtual.getMonthValue();
  17.        ano = dataAtual.getYear();
  18.    }
  19.  
  20.    public Data(Integer dia, Integer mes, Integer ano) {
  21.        this.dia = dia;
  22.        this.mes = mes;
  23.        this.ano = ano;
  24.    }
  25.  
  26.    public boolean validaData() {
  27.  
  28.         if(ano >= 0) {
  29.            
  30.             switch(mes) {
  31.             case 1:
  32.             case 3:
  33.             case 5:
  34.             case 7:
  35.             case 8:
  36.             case 10:
  37.             case 12: if (dia >= 1 && dia <= 31) return true;
  38.            
  39.             case 4:
  40.             case 6:
  41.             case 9:
  42.             case 11: if (dia >= 1 && dia <= 30) return true;
  43.            
  44.             case 2:
  45.                 if(isAnoBissexto(ano)) {
  46.                         if (dia >= 1 && dia <= 29) return true;
  47.                 } else {
  48.                     if (dia >= 1 && dia <= 28) return true;
  49.                 }      
  50.             }
  51.         }
  52.         return false;
  53.    }
  54.    
  55.    public void addDays(Integer day) {
  56.        dataAtual = LocalDate.of(ano, mes, dia);
  57.        dataAtual = dataAtual.plusDays(day);
  58.    }
  59.    
  60.    public LocalDate getDataAtual() {
  61.     return dataAtual;
  62.    }
  63.  
  64.     public void setDataAtual(LocalDate dataAtual) {
  65.         this.dataAtual = dataAtual;
  66.     }
  67.    
  68.     public Integer getDia() {
  69.         return dia;
  70.     }
  71.    
  72.     public void setDia(Integer dia) {
  73.         this.dia = dia;
  74.     }
  75.    
  76.     public Integer getMes() {
  77.         return mes;
  78.     }
  79.    
  80.     public void setMes(Integer mes) {
  81.         this.mes = mes;
  82.     }
  83.    
  84.     public Integer getAno() {
  85.         return ano;
  86.     }
  87.    
  88.     public void setAno(Integer ano) {
  89.         this.ano = ano;
  90.     }
  91.    
  92.     @Override
  93.     public String toString() {
  94.         return "Data: "+ dataAtual.getDayOfMonth() + "/" + dataAtual.getMonthValue() + "/" + dataAtual.getYear();
  95.       }
  96.        
  97.     private static boolean isAnoBissexto(int ano) {
  98.         if ((ano%4 == 0 && ano % 100 != 0) || (ano % 400 == 0)){
  99.             return true;
  100.         }
  101.         else{
  102.             return false;
  103.         }
  104.     }
  105.    
  106.     }
  107.  
  108. -------------------------------------------------------------------------------------------------------
  109. package dataProc;
  110.  
  111. import java.util.Scanner;
  112.  
  113. public class TesteDataProc {
  114.    
  115.     public static void main(String[] args) {
  116.    
  117.         final Integer op;
  118.         final Integer dia ;
  119.         final Integer mes ;
  120.         final Integer ano ;
  121.         final Integer days ;
  122.         Data data = new Data();
  123.        
  124.         Scanner ler = new Scanner(System.in);
  125.        
  126.         System.out.print("Data do sistema [1] Data do usuário [2]: ");
  127.         op = ler.nextInt();
  128.        
  129.         if (op == 2) {
  130.            
  131.             System.out.print("Informe o dia: ");
  132.             dia = ler.nextInt();
  133.             ler.nextLine();
  134.             System.out.print("Informe o mes: ");
  135.             mes = ler.nextInt();
  136.             ler.nextLine();
  137.             System.out.print("Informe o ano (yyyy): ");
  138.             ano = ler.nextInt();
  139.             data = new Data(dia,mes,ano);
  140.             if (!data.validaData())
  141.                 System.out.println("Data inválida!");
  142.             }
  143.                
  144.         ler.nextLine();
  145.         System.out.print("Informe dia acréscimo: ");
  146.         days = ler.nextInt();
  147.         data.addDays(days);
  148.         System.out.println(data.toString());
  149.        
  150.     }      
  151.      
  152. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement