fork download
  1.  
  2.  
  3. import java.util.Date;
  4. import java.util.Calendar;
  5. import java.text.SimpleDateFormat;
  6. import java.util.Arrays;
  7. import java.util.List;
  8. class Test {
  9.  
  10. public static void main(String[] args) throws Exception{
  11. String startDateString = "2023-06-01";
  12. String endDateString = "2023-05-31";
  13.  
  14.  
  15. if ((startDateString == null) && (endDateString == null)) {
  16. System.out.println("inactive");
  17. }
  18.  
  19. Calendar dateCal = Calendar.getInstance();
  20. dateCal.setTime(new Date());
  21. dateCal.set(Calendar.HOUR_OF_DAY, 23);
  22. dateCal.set(Calendar.MINUTE, 59);
  23. dateCal.set(Calendar.SECOND, 59);
  24. dateCal.set(Calendar.MILLISECOND, 0);
  25. Date today = dateCal.getTime();
  26. String postTerminateOffset = "-15";
  27. String preTerminateOffset = "-7,-14,-30,-60";
  28. String dateTimeFormat = "yyyy-MM-dd";
  29.  
  30. if (endDateString != null && !endDateString.equals("")) {
  31. Date endDate = new SimpleDateFormat("yyyy-MM-dd").parse(endDateString);
  32.  
  33. int regionTimezoneEODOffsetValue = Integer.parseInt("0");
  34. dateCal.setTime(endDate);
  35. dateCal.add(Calendar.DAY_OF_MONTH, 1);
  36. dateCal.add(Calendar.HOUR, regionTimezoneEODOffsetValue);
  37. endDate = dateCal.getTime();
  38.  
  39. int postTerminateOffsetValue = Integer.parseInt(postTerminateOffset);
  40. dateCal.setTime(endDate);
  41. dateCal.add(Calendar.DAY_OF_MONTH, postTerminateOffsetValue);
  42. Date postTerminateDate = dateCal.getTime();
  43. if (today.after(postTerminateDate)) {
  44. System.out.println("postterminate");
  45. return;
  46. }
  47.  
  48. if (today.after(endDate)) {
  49. System.out.println("terminate");
  50. return;
  51. }
  52.  
  53. int preTerminateOffsetValue = 0;
  54. List offsetList = Arrays.asList(preTerminateOffset.split(","));
  55. for(int i = 0; i < offsetList.size(); i++) {
  56. preTerminateOffsetValue = Integer.parseInt(offsetList.get(i).toString());
  57. dateCal.setTime(endDate);
  58. dateCal.add(Calendar.DAY_OF_MONTH, preTerminateOffsetValue);
  59. Date preTerminateDate = dateCal.getTime();
  60. if (today.after(preTerminateDate)) {
  61. System.out.println("preterminate-" + offsetList.get(i));
  62. return;
  63.  
  64. }
  65. }
  66. }
  67.  
  68.  
  69. Date startDate = null;
  70. if (startDateString != null && !startDateString.equals("")) {
  71. startDate = new SimpleDateFormat(dateTimeFormat).parse(startDateString);
  72. }
  73. if (startDate != null) {
  74. if (today.after(startDate)) {
  75. System.out.println("active");
  76. return;
  77. }
  78. if (today.before(startDate)) {
  79. System.out.println("onboard");
  80. return;
  81. }
  82. }
  83.  
  84. System.out.println("inactive");
  85. return;
  86. }
  87. }
  88.  
Success #stdin #stdout 0.17s 36040KB
stdin
Standard input is empty
stdout
postterminate