Advertisement
arthurgregorio

Data

Jul 2nd, 2020
828
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.36 KB | None | 0 0
  1. package data;
  2.  
  3. import java.text.ParseException;
  4. import java.text.SimpleDateFormat;
  5. import java.util.Date;
  6. import java.util.Locale;
  7. import java.util.concurrent.TimeUnit;
  8.  
  9. public class Data {
  10.  
  11.     private Date data;
  12.    
  13.     public Data(int dia, int mes, int ano) {
  14.        
  15.         final String dataTexto = dia + "-" + mes + "-" + ano;
  16.        
  17.         final SimpleDateFormat formatador = new SimpleDateFormat("dd-MM-yyyy", Locale.getDefault());
  18.         formatador.setLenient(false);
  19.  
  20.         try {
  21.             this.data  = formatador.parse(dataTexto);
  22.         } catch (ParseException ex) {
  23.             System.err.println("Falha ao processar a data informada, os valores estão corretos: " + dataTexto + "?");
  24.         }
  25.     }
  26.    
  27.     public long calculoIdade() {
  28.        
  29.         final Date agora = new Date();
  30.        
  31.         final long diferenca = Math.abs(this.data.getTime() - agora.getTime());
  32.        
  33.         final long anos = TimeUnit.MILLISECONDS.toDays(diferenca) / 365;
  34.        
  35.         return anos;
  36.     }
  37.    
  38.     public static void main(String[] args) {
  39.         new Data(29, 7, 1990); // correct
  40.         new Data(32, 5, 1990); // error
  41.         new Data(30, 2, 2020); // error
  42.         new Data(1, 1, 2020); // correct
  43.        
  44.         Data data = new Data(29, 7, 1990);
  45.         System.out.println(data.calculoIdade()); // return 29
  46.     }
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement