Advertisement
Guest User

Untitled

a guest
May 5th, 2016
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.69 KB | None | 0 0
  1. static inline uint32_t get_week_expiration(time_t offer_time)
  2. {
  3. using namespace boost::gregorian;
  4. using namespace boost::posix_time;
  5.  
  6. first_day_of_the_week_after next_week_start(Monday);
  7. date epoch(1970, Jan, 1), offer_date = epoch + date_duration(offer_time / 1_day),
  8. current_date = epoch + date_duration(time(nullptr) / 1_day);
  9. date_period weekend(next_week_start.get_date(current_date) - date_duration(2), next_week_start.get_date(current_date));
  10.  
  11. if (!weekend.contains(offer_date) || !weekend.contains(current_date))
  12. return 0;
  13.  
  14. time_t expiration = static_cast<time_t>((ptime(next_week_start.get_date(current_date)) - ptime(epoch)).total_seconds());
  15.  
  16. return expiration;
  17. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement