Daniel_I_Am

com.reddit.badcode.Christmas_Edition___Can_Santa_Save_Christ

Dec 5th, 2019
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.95 KB | None | 0 0
  1. package com.reddit.badcode.Christmas_Edition___Can_Santa_Save_Christmas_25;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6. import java.net.HttpURLConnection;
  7. import java.net.URL;
  8. import java.text.DateFormat;
  9. import java.text.ParseException;
  10. import java.text.SimpleDateFormat;
  11. import java.util.Date;
  12. import java.util.HashSet;
  13. import java.util.Set;
  14.  
  15. public class Main {
  16.     public static Set<Long> listOfTimes = new HashSet<>();
  17.     public static void setHoursUsed(int hoursUsed) {
  18.         Main.hoursUsed = hoursUsed;
  19.     }
  20.  
  21.     private static int hoursUsed;
  22.     public static void setMinutesUsed(int minutesUsed) {
  23.         Main.minutesUsed = minutesUsed;
  24.     }
  25.  
  26.     private static int minutesUsed;
  27.     public static void setSecondsUsed(int secondsUsed) {
  28.         Main.secondsUsed = secondsUsed;
  29.     }
  30.  
  31.     private static int secondsUsed;
  32.  
  33.     public static void main(
  34.             String[]
  35.                     args
  36.     )
  37.             throws
  38.             ParseException, IOException {
  39.         for (String arg : args) {
  40.             StringToTimeParser.Builder stringToTimeParserBuilder = new StringToTimeParser.Builder();
  41.             stringToTimeParserBuilder.setArgument(arg);
  42.             StringToTimeParser stringToTimeParser = stringToTimeParserBuilder.build();
  43.             long sec = stringToTimeParser.get();
  44.             listOfTimes.add(sec);
  45.         }
  46.  
  47.         double secondsInAYear = 3.1556925993600003E7;
  48.         long secondsInADay = (long)(secondsInAYear / 365.242199);
  49.  
  50.  
  51.         Counter2 counter = new Counter2(listOfTimes);
  52.         boolean santaCanMakeTheDelivery = counter.timeInThisCounterIsUnderSomeAmountOfSeconds(secondsInADay);
  53.         URL url = new URL(String.format("http://artii.herokuapp.com/make?text=%s", santaCanMakeTheDelivery ? "Yes!" : "No%20%3DC"));
  54.         HttpURLConnection con = (HttpURLConnection) url.openConnection();
  55.         con.setRequestMethod("GET");
  56.         BufferedReader in = new BufferedReader(
  57.                 new InputStreamReader(con.getInputStream()));
  58.         String inputLine;
  59.         StringBuffer content = new StringBuffer();
  60.         while ((inputLine = in.readLine()) != null) {
  61.             content.append(inputLine);
  62.         }
  63.         in.close();
  64.         for (int i = 0; i < content.length(); i-=-1) {
  65.             char c = content.charAt(i);
  66.             if (i % (content.length()  / 8) == 0) {
  67.                 System.out.println(c);
  68.             } else {
  69.                 System.out.print(c);
  70.             }
  71.         }
  72.         System.out.println();
  73.     }
  74.  
  75.     public static class Counter2 {
  76.         public Counter2(Set<Long> sec_set) {
  77.             this.sec_set = sec_set;
  78.         }
  79.  
  80.         private Set<Long> sec_set;
  81.         private long totalTimeCountedSoFarInSecondsAsALong;
  82.         public boolean timeInThisCounterIsUnderSomeAmountOfSeconds(long thatAmountOfSecondsItNeedsToBeUnder) {
  83.             totalTimeCountedSoFarInSecondsAsALong = 0;
  84.             sec_set.forEach(forEachVariableListItemSecondInLongFormat -> this.countAnotherAmountOfSeconds(forEachVariableListItemSecondInLongFormat));
  85.             return totalTimeCountedSoFarInSecondsAsALong < thatAmountOfSecondsItNeedsToBeUnder;
  86.         }
  87.         public void countAnotherAmountOfSeconds(long amountToCount) {
  88.             this.totalTimeCountedSoFarInSecondsAsALong = this.totalTimeCountedSoFarInSecondsAsALong + amountToCount;
  89.         }
  90.     }
  91.     public static class Counter {
  92.         public Counter(int hoursUsedSoFar, int minutesUsedSoFar, int secondsUsedSoFar, int hoursToAdd, int minutesToAdd, int secondsToAdd) {
  93.             Main.setHoursUsed(hoursUsedSoFar + hoursToAdd);
  94.             Main.setMinutesUsed(minutesUsedSoFar + minutesToAdd);
  95.             Main.setSecondsUsed(secondsUsedSoFar + secondsToAdd);
  96.         }
  97.     }
  98.     private Main(int hoursToAdd, int minutesToAdd, int secondsToAdd) {
  99.         new Counter(Main.hoursUsed, Main.minutesUsed, Main.secondsUsed, hoursToAdd, minutesToAdd, secondsToAdd);
  100.     }
  101.  
  102.     private static class StringToTimeParser {
  103.         private String arg;
  104.         private StringToTimeParser() {}
  105.  
  106.         public static class Builder {
  107.             public Builder() {}
  108.  
  109.             private String argument;
  110.             public Builder setArgument(String this_argument) {
  111.                 this.argument = this_argument;
  112.                 return this;
  113.             }
  114.  
  115.             public StringToTimeParser build() {
  116.                 StringToTimeParser stringToTimeParser = new StringToTimeParser();
  117.                 stringToTimeParser.arg = this.argument;
  118.                 return stringToTimeParser;
  119.             }
  120.         }
  121.  
  122.         public long get() throws ParseException {
  123.             DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
  124.             Date reference = dateFormat.parse("00:00:00");
  125.             Date date = dateFormat.parse(arg);
  126.             long seconds = (date.getTime() - reference.getTime()) / 1000L;
  127.             return seconds;
  128.         }
  129.     }
  130. }
Add Comment
Please, Sign In to add comment