ClavinJune

Convert umur ke hari

Sep 25th, 2017
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.47 KB | None | 0 0
  1. import java.util.Scanner;
  2. import java.time.LocalDate;
  3.  
  4. public class Main{
  5.     //scanner
  6.     private static final Scanner scan = new Scanner(System.in);
  7.  
  8.     //ambil tahun sekarang
  9.     private static final int year     = LocalDate.now().getYear();
  10.  
  11.     //ambil bulan sekarang
  12.     private static final int month    = LocalDate.now().getMonthValue();
  13.  
  14.     //ambil tanggal sekarang
  15.     private static final int day      = LocalDate.now().getDayOfMonth();
  16.  
  17.     /**
  18.      * @param str buat nentuin validasi tahun / bulan / tanggal
  19.      * fungsi buat nerima inputan user aja, biar ganulis berkali2, dibikin fungsi
  20.      */
  21.     private int userInput(String str){
  22.         int n,val;
  23.         n = val = 0;
  24.  
  25.         /*
  26.             kalau parameternya tahun berarti, nanti user gaboleh masukkin tahun yang lebih dari tahun sekarang
  27.             misal sekarang tahun 2017, user gaboleh input 2018
  28.         */
  29.         if( str == "tahun" )   val = year;
  30.  
  31.         /*
  32.             kalau parameternya bulan, user gaboleh masukkin bulan ke 13        
  33.         */
  34.         if( str == "bulan" )   val = 12;
  35.  
  36.         /*
  37.             kalau parameternya tanggal, user gaboleh masukkin tanggal ke 31 (standarisasi 1 bulan cuma 30 hari)
  38.         */
  39.         if( str == "tanggal" ) val = 30;
  40.  
  41.         //validasi user gaboleh masukkin angka minus
  42.         do{
  43.             try{
  44.                 System.out.print("Masukkan " + str + " lahir : ");
  45.                 n = scan.nextInt();
  46.             }catch(Exception e){}
  47.             scan.nextLine();
  48.         }while( n < 0 || n > val );
  49.  
  50.         //return inputan user setelah divalidasi
  51.         return n;
  52.     }
  53.  
  54.     private Main(){
  55.         //variable inputan user
  56.         int y,m,d;
  57.  
  58.         //variable hasil pengurangan sekarang dengan inputan user
  59.         int age_d,age_m,age_y;
  60.  
  61.         y = m = d = age_y = age_m = age_d = 0;
  62.  
  63.         //user input tahun
  64.         y = userInput("tahun");
  65.  
  66.         //user input bulan
  67.         m = userInput("bulan");
  68.  
  69.         //user input tanggal
  70.         d = userInput("tanggal");
  71.  
  72.         /*
  73.             pengurangan biasa
  74.             misalkan tanggal sekarang
  75.             2017 09 25
  76.             1998 06 28
  77.             __________ -
  78.             kalau misalkan 25 - 28 kan minus, minjem satu dari bulan jadinya
  79.  
  80.  
  81.             2017 08 55
  82.             1998 06 28
  83.             __________ -
  84.             tanggalnya ditambah 30 biar bisa dikurangin, bulannya dikurangin 1
  85.         */
  86.         if( day - d < 0 ){
  87.             --month;
  88.             day += 30;
  89.         }
  90.  
  91.         if( month - m < 0 ){
  92.             --year;
  93.             month += 12;
  94.         }
  95.  
  96.         //cari selisih tanggal, bulan, tahun
  97.         age_d = day - d;
  98.         age_m = month - m;
  99.         age_y = year - y;
  100.  
  101.         //ubah tahun & bulan ke hari
  102.         int age = (age_y*365) + (age_m*30) + age_d;
  103.  
  104.         //output
  105.         System.out.println("Umur anda : " + age + " hari");
  106.     }
  107.  
  108.     public static void main(String []args){
  109.         new Main();
  110.     }
  111. }
Add Comment
Please, Sign In to add comment