first commit
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
import java.util.*;
|
||||
import java.util.zip.DataFormatException;
|
||||
import java.io.*;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
|
||||
public class Main{
|
||||
static String stdName(String s){
|
||||
String[] n = s.toLowerCase().split("[' ']+");
|
||||
String r = "";
|
||||
for(int i=0; i<n.length; i++){
|
||||
if(n[i].length() == 0) continue;
|
||||
r = r + Character.toString(n[i].charAt(0)).toUpperCase() + n[i].substring(1) + " ";
|
||||
}
|
||||
return r;
|
||||
}
|
||||
static int getPrice(int room){
|
||||
int x = room/100;
|
||||
if(x==1) return 25;
|
||||
if(x==2) return 34;
|
||||
if(x==3) return 50;
|
||||
return 80;
|
||||
}
|
||||
static String fomartDay(String s){
|
||||
String[] a = s.split("/");
|
||||
return (a[0].length() == 1 ? "0" + a[0] : a[0]) + '/' + (a[1].length() == 1 ? "0" + a[1] : a[1]) + '/' + a[2];
|
||||
}
|
||||
static class cus{
|
||||
String code, name;
|
||||
int room, days, bill;
|
||||
public cus(int i, String n, int r, String a, String l, int ex){
|
||||
code = String.format("KH%02d", i);
|
||||
name = stdName(n);
|
||||
room = r;
|
||||
SimpleDateFormat d = new SimpleDateFormat("dd/MM/yyyy");
|
||||
try{
|
||||
days = (int)((d.parse(l).getTime() - d.parse(a).getTime())/(24*60*60*1000) + 1);
|
||||
} catch(ParseException e){
|
||||
|
||||
}
|
||||
bill = getPrice(room)*days + ex;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString(){
|
||||
return code + ' ' + name + room + ' ' + days + ' ' + bill;
|
||||
}
|
||||
}
|
||||
public static void main(String[] arg)throws IOException{
|
||||
// Scanner sc = new Scanner(System.in);
|
||||
Scanner sc = new Scanner(new File("KHACHHANG.in"));
|
||||
int n = sc.nextInt();
|
||||
ArrayList<cus> a = new ArrayList<>();
|
||||
for(int i=1; i<=n; i++){
|
||||
sc.nextLine();
|
||||
a.add(new cus(i, sc.nextLine(), sc.nextInt(), fomartDay(sc.next()), fomartDay(sc.next()), sc.nextInt()));
|
||||
}
|
||||
Collections.sort(a, new Comparator<cus>() {
|
||||
@Override
|
||||
public int compare(cus a, cus b){
|
||||
return b.bill - a.bill;
|
||||
}
|
||||
});
|
||||
a.forEach(e -> System.out.println(e));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user