fork(1) download
  1. import java.util.*;
  2. import java.lang.*;
  3. import java.io.*;
  4.  
  5. import java.util.Calendar;
  6. import java.util.HashMap;
  7.  
  8. /* Name of the class has to be "Main" only if the class is public. */
  9. class Ideone {
  10.  
  11. private static int secondsAgo;
  12.  
  13. private static HashMap<Integer, Long> cooldown = new HashMap<Integer, Long>();
  14.  
  15. public Ideone() {
  16. secondsAgo = 30;
  17. }
  18.  
  19. public static void main (String[] args) throws java.lang.Exception {
  20.  
  21. for ( int c=0; c<5; c++ ) {
  22. for ( int i=0; i<5; i++ ) {
  23.  
  24. if (cooldown(i)) {
  25. System.out.println("ID "+i+" passed!");
  26. } else {
  27. System.out.println("ID "+i+" waiting for cooldown!");
  28. }
  29.  
  30. }
  31. }
  32.  
  33. }
  34.  
  35. public static Boolean cooldown(int id) {
  36.  
  37. Calendar now = Calendar.getInstance();
  38. now.add(Calendar.SECOND, -secondsAgo);
  39. long timeAgo = now.getTimeInMillis();
  40. if ( cooldown.containsKey(id) ) {
  41.  
  42. System.out.println(cooldown.get(id) + " | " + timeAgo);
  43.  
  44. // Stored timestamp always older than timeAgo
  45. if ( cooldown.get(id) < timeAgo ) {
  46.  
  47. cooldown.remove(id);
  48.  
  49. } else {
  50.  
  51. return false;
  52.  
  53. }
  54.  
  55. }
  56.  
  57. now = Calendar.getInstance();
  58. cooldown.put(id, now.getTimeInMillis());
  59.  
  60. return true;
  61.  
  62. }
  63.  
  64. }
Success #stdin #stdout 0.05s 4386816KB
stdin
Standard input is empty
stdout
ID 0 passed!
ID 1 passed!
ID 2 passed!
ID 3 passed!
ID 4 passed!
1491194338577 | 1491194338578
ID 0 passed!
1491194338578 | 1491194338578
ID 1 waiting for cooldown!
1491194338578 | 1491194338578
ID 2 waiting for cooldown!
1491194338578 | 1491194338579
ID 3 passed!
1491194338578 | 1491194338579
ID 4 passed!
1491194338578 | 1491194338579
ID 0 passed!
1491194338578 | 1491194338579
ID 1 passed!
1491194338578 | 1491194338579
ID 2 passed!
1491194338579 | 1491194338579
ID 3 waiting for cooldown!
1491194338579 | 1491194338579
ID 4 waiting for cooldown!
1491194338579 | 1491194338579
ID 0 waiting for cooldown!
1491194338579 | 1491194338579
ID 1 waiting for cooldown!
1491194338579 | 1491194338580
ID 2 passed!
1491194338579 | 1491194338580
ID 3 passed!
1491194338579 | 1491194338580
ID 4 passed!
1491194338579 | 1491194338580
ID 0 passed!
1491194338579 | 1491194338580
ID 1 passed!
1491194338580 | 1491194338580
ID 2 waiting for cooldown!
1491194338580 | 1491194338581
ID 3 passed!
1491194338580 | 1491194338581
ID 4 passed!