Advertisement
Guest User

Untitled

a guest
Jan 17th, 2017
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.06 KB | None | 0 0
  1. # Метод приймає аргумент формату "Thu, 22 Dec 2016 00:00:00"
  2.  
  3. require 'Date'
  4.  
  5. def five_days_from(date)
  6. begin
  7. parsed_date = DateTime.strptime(date, '%a, %d %b %Y %H:%M:%S')
  8. rescue ArgumentError
  9. parsed_date = DateTime.strptime(date, '%a, %d %b %Y')
  10. ensure
  11. formatted_date = parsed_date.strftime("%a, %d %b %Y %H:%M:%S")
  12.  
  13. # значення для закінчення циклу після 5ти днів
  14. five_days = parsed_date.day + 5
  15.  
  16. # значення для інтервалів
  17. minutes15 = 15
  18. minutes30 = 30
  19. hours1 = 1
  20. hours24 = 24
  21.  
  22. array = []
  23. array.push(formatted_date)
  24.  
  25. while parsed_date.hour <= 24 and parsed_date.hour >= 0
  26. if parsed_date.day == five_days
  27. break
  28. end
  29. if parsed_date.hour < 1
  30. while parsed_date.hour < 1
  31. parsed_date = parsed_date + (minutes15/1440.0)
  32. formatted_date = parsed_date.strftime("%a, %d %b %Y %H:%M:%S")
  33. array.push(formatted_date)
  34. end
  35. end
  36. if parsed_date.hour >= 1 and parsed_date.hour < 5
  37. while parsed_date.hour < 5
  38. parsed_date = parsed_date + (minutes30/1440.0)
  39. formatted_date = parsed_date.strftime("%a, %d %b %Y %H:%M:%S")
  40. array.push(formatted_date)
  41. end
  42. end
  43. if parsed_date.hour >= 5 and parsed_date.hour < 12
  44. while parsed_date.hour < 12
  45. parsed_date = parsed_date + (hours1/24.0)
  46. formatted_date = parsed_date.strftime("%a, %d %b %Y %H:%M:%S")
  47. array.push(formatted_date)
  48. end
  49. end
  50. if parsed_date.hour >= 12
  51. while parsed_date
  52. parsed_date = parsed_date + (hours24/24.0)
  53. formatted_date = parsed_date.strftime("%a, %d %b %Y %H:%M:%S")
  54. array.push(formatted_date)
  55. if parsed_date.day == five_days
  56. break
  57. end
  58. end
  59. end
  60. end
  61. array.each { |a| puts a }
  62. end
  63. end
  64.  
  65. five_days_from("Thu, 22 Dec 2016 12:00:00")
  66. puts "\n\n\n"
  67. five_days_from("Thu, 22 Dec 2016")
  68. puts "\n\n\n"
  69. five_days_from("Wed, 18 Jan 2017 02:56:00")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement