fork download
  1. // from https://i...content-available-to-author-only...e.com/TaR29j
  2. /* package whatever; // don't place package name! */
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6. import java.util.Date;
  7. import java.text.SimpleDateFormat;
  8. import java.text.*;
  9.  
  10. /* Name of the class has to be "Main" only if the class is public. */
  11. class TimeSheet
  12. {
  13. public static void main (String[] args) throws java.lang.Exception
  14. {
  15. //Scanner myObj = new Scanner(System.in); // Create a Scanner object
  16.  
  17. Scanner myObj = new Scanner(System.in); // use myObj so you don't have to change it if you choose to use hard-wired inputs
  18.  
  19. // https://w...content-available-to-author-only...t.com/how-to-format-date-using-printf-method-in-java
  20. Date dateObj = new Date();
  21.  
  22. // https://stackoverflow.com/posts/39066917/revisions
  23. SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM d, yyyy");
  24.  
  25. System.out.println("From \"https://c...content-available-to-author-only...e.com/pwm/action/mobileGetTimesheetPunches\"");
  26.  
  27. //stackoverflow/questions/2296685/how-to-read-input-with-multiple-lines-in-java
  28. //stackoverflow/questions/56887493/how-to-take-multi-line-input-in-java search:HashmatWarrior
  29. while(myObj.hasNext())
  30. {
  31. String gottaFix = myObj.nextLine();
  32. String[] dateString = new String[2];
  33. String header = "Type Status Time Hours";
  34. String hours;
  35. String[] punch = new String[4];
  36.  
  37. if(!gottaFix.isEmpty())
  38. {
  39. if(gottaFix.contains("Punches:"))
  40. {
  41. dateString = gottaFix.split(": ");
  42. dateObj = sdf.parse(dateString[1]);
  43.  
  44. System.out.printf("%ta", dateObj); // Sun
  45. System.out.printf(" %tm", dateObj); // date
  46. System.out.printf("/%te", dateObj); // date
  47.  
  48. System.out.print(", scheduledTime");
  49.  
  50. /*System.out.printf("Date: %td%n", dateObj); System.out.printf("Month: %tm%n", dateObj); System.out.printf("Year: %ty%n", dateObj); System.out.printf("getTime(): "+dateObj);*/
  51. }
  52.  
  53. else if(gottaFix.contains("M"))
  54. {
  55. punch = gottaFix.split("\t");
  56. System.out.print(", ");
  57. System.out.print(punch[3].replaceAll(" \\DM", ""));
  58.  
  59. if(punch[0].equals("ES"))
  60. {
  61. if(punch[1].equals("Edited"))
  62. { System.out.println("/, (bank run); ");}
  63. else
  64. { System.out.println(", no bank run; ");}
  65. }
  66. }
  67. }
  68.  
  69. //else
  70. {
  71.  
  72. }
  73. }
  74. }
  75. }
Success #stdin #stdout 0.26s 58096KB
stdin
Punches: Sun Dec 7, 2025
SS	Normal	5:30 PM	3:52 PM	3:52 PM	6:03	
SB	Normal		9:55 PM	9:55 PM	0:12	
EB	Normal		10:07 PM	10:07 PM	0:24	
ES	Normal	10:30 PM	10:31 PM	10:31 PM			
Punches: Thu Dec 11, 2025
SS	Normal		5:37 PM	5:37 PM	4:27	
SB	Normal		10:04 PM	10:04 PM	0:12	
EB	Normal		10:16 PM	10:16 PM	0:10	
ES	Normal		10:26 PM	10:26 PM			
Punches: Fri Dec 12, 2025
SS	Normal	5:30 PM	5:34 PM	5:34 PM	4:36	
SB	Normal		10:10 PM	10:10 PM	0:12	
EB	Normal		10:22 PM	10:22 PM	0:11	
ES	Normal	10:30 PM	10:33 PM	10:33 PM			
Punches: Sat Dec 13, 2025
SS	Normal	5:30 PM	5:27 PM	5:27 PM	4:45	
SB	Normal		10:12 PM	10:12 PM	0:10	
EB	Normal		10:22 PM	10:22 PM	0:56	
ES	Normal	10:30 PM	11:18 PM	11:18 PM			
Punches: Sun Dec 14, 2025
SS	Normal	5:30 PM	5:19 PM	5:19 PM	4:03	
SB	Normal		9:22 PM	9:22 PM	0:11	
EB	Normal		9:33 PM	9:33 PM	0:55	
ES	Normal	10:30 PM	10:28 PM	10:28 PM			
Punches: Mon Dec 15, 2025
SS	Normal	5:30 PM	5:31 PM	5:31 PM	3:48	
SB	Normal		9:19 PM	9:19 PM	0:20	Late Return
EB	Normal		9:39 PM	9:39 PM	0:50	
ES	Normal	10:30 PM	10:29 PM	10:29 PM			
Punches: Tue Dec 16, 2025
SS	Normal	5:30 PM	5:27 PM	5:27 PM	4:48	
SB	Normal		10:15 PM	10:15 PM	0:10	
EB	Edited		10:32 PM	10:25 PM	0:07	
ES	Added			10:32 PM			
SS	Added			10:33 PM	0:39	
ES	Added	10:30 PM		11:12 PM			
Punches: Fri Dec 19, 2025
SS	Normal	5:30 PM	5:33 PM	5:33 PM	4:42	
SB	Normal		10:15 PM	10:15 PM	0:10	
EB	Normal		10:25 PM	10:25 PM	0:21	
ES	Normal	10:30 PM	10:46 PM	10:46 PM			
Punches: Sat Dec 20, 2025
SS	Normal	5:30 PM	4:09 PM	4:09 PM	5:37	
SB	Normal		9:46 PM	9:46 PM	0:10	
EB	Added			9:56 PM	1:22	
ES	Normal	10:30 PM	11:18 PM	11:18 PM			
stdout
From "https://c...content-available-to-author-only...e.com/pwm/action/mobileGetTimesheetPunches"
Sun 12/7, scheduledTime, 3:52, 9:55, 10:07, 10:31, no bank run; 
Thu 12/11, scheduledTime, 5:37, 10:04, 10:16, 10:26, no bank run; 
Fri 12/12, scheduledTime, 5:34, 10:10, 10:22, 10:33, no bank run; 
Sat 12/13, scheduledTime, 5:27, 10:12, 10:22, 11:18, no bank run; 
Sun 12/14, scheduledTime, 5:19, 9:22, 9:33, 10:28, no bank run; 
Mon 12/15, scheduledTime, 5:31, 9:19, 9:39, 10:29, no bank run; 
Tue 12/16, scheduledTime, 5:27, 10:15, 10:32, , no bank run; 
, , , no bank run; 
Fri 12/19, scheduledTime, 5:33, 10:15, 10:25, 10:46, no bank run; 
Sat 12/20, scheduledTime, 4:09, 9:46, , 11:18, no bank run;