Advertisement
Guest User

Untitled

a guest
Apr 24th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.33 KB | None | 0 0
  1. require 'date'
  2.  
  3. def days_diff(date1, date2)
  4. date1 = Time.new(date1.year, date1.month, date1.day)
  5. date2 = Time.new(date2.year, date2.month, date2.day)
  6. return (date1.to_i - date2.to_i)/(3600*24)
  7. end
  8.  
  9. def count_sessions(array)
  10. count_session = 1
  11. last_session = DateTime.strptime(array[array.length-1], "%Y-%m-%d %H:%M:%S")
  12.  
  13. consecutive_days = 1
  14.  
  15. for i in 2..array.length
  16. comparing = DateTime.strptime(array[array.length-i], "%Y-%m-%d %H:%M:%S")
  17. days_between_sessions = days_diff(last_session, comparing)
  18. if days_between_sessions > 1
  19. break
  20. elsif last_session.to_time.to_i - comparing.to_time.to_i > 60*30
  21. consecutive_days += days_between_sessions
  22. count_session += 1
  23. last_session = comparing
  24. end
  25. end
  26.  
  27. if count_session >= 6 && consecutive_days == 3
  28. return true
  29. else
  30. return false
  31. end
  32. end
  33.  
  34. puts count_sessions(['2017-03-10 08:13:11', '2017-03-10 19:01:27', '2017-03-11 07:35:55', '2017-03-11 16:15:11', '2017-03-12 08:01:41', '2017-03-12 17:19:08'])
  35. puts count_sessions(['2017-03-10 18:58:11', '2017-03-10 19:01:27', '2017-03-11 07:35:55', '2017-03-11 16:15:11', '2017-03-12 08:01:41', '2017-03-12 17:19:08'])
  36. puts count_sessions(['2017-03-08 17:11:13', '2017-03-11 17:22:47', '2017-03-11 19:23:51', '2017-03-11 22:03:12', '2017-03-12 08:32:04', '2017-03-12 13:19:08', '2017-03-12 17:19:08'])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement