DamSi

Untitled

May 28th, 2016
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.48 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.util.*;
  5.  
  6. /**
  7.  * ----------------------------
  8.  * Project: APS
  9.  * Package: dopolnitelni_casovi.hashmaps
  10.  * Created on: 28.5.2016, 15:09
  11.  * IDE: IntelliJ IDEA
  12.  * ----------------------------
  13.  * Author: Damjan Miloshevski
  14.  * Web: http://damjanmiloshevski.mk/
  15.  * Phone: +389 (0)78 566 409
  16.  * Skype: damjan.milosevski
  17.  * LinkedIn: https://mk.linkedin.com/in/damjanmiloshevski
  18.  * GitHub: https://github.com/damsii
  19.  * Bitbucket: https://bitbucket.org/dam_si
  20.  */
  21. public class Rodendeni {
  22.  
  23.     public static void main(String[] args) throws IOException {
  24.         BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
  25.         Map<String, ArrayList<Vraboten>> vraboteni = new HashMap<>();
  26.         try {
  27.             int N = Integer.parseInt(in.readLine());
  28.             for (int i = 0; i < N; i++) {
  29.                 String[] parts = in.readLine().split(" ");
  30.                 String name = parts[0];
  31.                 String lastName = parts[1];
  32.                 String DOB = parts[2];
  33.                 String key = generateKey(DOB);
  34.                 Vraboten vraboten = new Vraboten(name, lastName, DOB);
  35.                 ArrayList<Vraboten> kolegi = vraboteni.get(key);
  36.                 if (kolegi == null) {
  37.                     kolegi = new ArrayList<>();
  38.                     kolegi.add(vraboten);
  39.                 } else {
  40.                     kolegi.add(vraboten);
  41.                 }
  42.                 vraboteni.put(key, kolegi);
  43.             }
  44.             String date = in.readLine();
  45.             String key = generateKey(date);
  46.             ArrayList<Vraboten> kolegi = vraboteni.get(key);
  47.             if (kolegi == null) {
  48.                 System.out.println("Nema");
  49.             } else {
  50.                 Collections.sort(kolegi);
  51.                 int currYear = Integer.parseInt(date.substring(6, 10));
  52.                 for (Vraboten vraboten : kolegi) {
  53.                     System.out.println(vraboten.toString() + " " + vraboten.age(vraboten.getDOB(), currYear));
  54.                 }
  55.             }
  56.         } catch (NumberFormatException e) {
  57.             System.err.println("Pogresen vlez!");
  58.         }
  59.  
  60.     }
  61.  
  62.     public static String generateKey(String str) {
  63.         return str.substring(0, 6);
  64.     }
  65. }
  66.  
  67. class Vraboten implements Comparable<Vraboten> {
  68.     private String name;
  69.     private String lastName;
  70.     private String DOB;
  71.     protected int vozrast;
  72.  
  73.     public Vraboten(String name, String lastName, String DOB) {
  74.         this.name = name;
  75.         this.lastName = lastName;
  76.         this.DOB = DOB;
  77.         int currYear = Calendar.getInstance().get(Calendar.YEAR);
  78.         vozrast = age(DOB, currYear);
  79.     }
  80.  
  81.     @Override
  82.     public String toString() {
  83.         return String.format("%s %s", name, lastName);
  84.     }
  85.  
  86.     static int age(String dob, int currYear) {
  87.         String[] parts = dob.split("/");
  88.         int year = Integer.parseInt(parts[2]);
  89.         return currYear - year;
  90.     }
  91.  
  92.     public String getName() {
  93.         return name;
  94.     }
  95.  
  96.     public String getLastName() {
  97.         return lastName;
  98.     }
  99.  
  100.     public String getDOB() {
  101.         return DOB;
  102.     }
  103.  
  104.     @Override
  105.     public int compareTo(Vraboten o) {
  106.         if (name.equals(o.name)) {
  107.             return Integer.compare(vozrast, o.vozrast);
  108.         }
  109.         return name.compareTo(o.name);
  110.     }
  111. }
Advertisement
Add Comment
Please, Sign In to add comment