Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Метод приймає аргумент формату "Thu, 22 Dec 2016 00:00:00"
- require 'Date'
- def five_days_from(date)
- begin
- parsed_date = DateTime.strptime(date, '%a, %d %b %Y %H:%M:%S')
- rescue ArgumentError
- parsed_date = DateTime.strptime(date, '%a, %d %b %Y')
- ensure
- formatted_date = parsed_date.strftime("%a, %d %b %Y %H:%M:%S")
- # значення для закінчення циклу після 5ти днів
- five_days = parsed_date.day + 5
- # значення для інтервалів
- minutes15 = 15
- minutes30 = 30
- hours1 = 1
- hours24 = 24
- array = []
- array.push(formatted_date)
- while parsed_date.hour <= 24 and parsed_date.hour >= 0
- if parsed_date.day == five_days
- break
- end
- if parsed_date.hour < 1
- while parsed_date.hour < 1
- parsed_date = parsed_date + (minutes15/1440.0)
- formatted_date = parsed_date.strftime("%a, %d %b %Y %H:%M:%S")
- array.push(formatted_date)
- end
- end
- if parsed_date.hour >= 1 and parsed_date.hour < 5
- while parsed_date.hour < 5
- parsed_date = parsed_date + (minutes30/1440.0)
- formatted_date = parsed_date.strftime("%a, %d %b %Y %H:%M:%S")
- array.push(formatted_date)
- end
- end
- if parsed_date.hour >= 5 and parsed_date.hour < 12
- while parsed_date.hour < 12
- parsed_date = parsed_date + (hours1/24.0)
- formatted_date = parsed_date.strftime("%a, %d %b %Y %H:%M:%S")
- array.push(formatted_date)
- end
- end
- if parsed_date.hour >= 12
- while parsed_date
- parsed_date = parsed_date + (hours24/24.0)
- formatted_date = parsed_date.strftime("%a, %d %b %Y %H:%M:%S")
- array.push(formatted_date)
- if parsed_date.day == five_days
- break
- end
- end
- end
- end
- array.each { |a| puts a }
- end
- end
- five_days_from("Thu, 22 Dec 2016 12:00:00")
- puts "\n\n\n"
- five_days_from("Thu, 22 Dec 2016")
- puts "\n\n\n"
- five_days_from("Wed, 18 Jan 2017 02:56:00")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement