Автор Тема: C++ Проверка дали часа в момента влиза в определен период от време  (Прочетена 1219 пъти)

staco

  • Напреднали
  • *****
  • Публикации: 72
  • Distribution: Ubuntu, Debian
  • Window Manager: Gnome
    • Профил
Здравейте отново  :)

Мислих го, мислих го, ама така и не го измислих..
Не мога да направя проверка, която да проверява дали ЧАСА_В_МОМЕНТА влиза в даден обхват от време

Давам пример:
Часа: 19:12 дали влиза в обхвата: 18:50 - 20:10 (в случая влиза)
Тоест нещо от рода на:
Код
GeSHi (C++):
  1. if(chasa_v_momenta >= 18:50 && chasa_v_momenta <= 20:10) {
  2. // blabla..
  3. }

примерно 18:50 unix time format = 1253980200
Но работата е там че се записва и дата и няма да стане проверката от типа if(time() >= 1253980200 .... ), защото винаги днешната дата, ще е по-голяма от зададената в условието.. дори часа да съвпада

Някакви идеи как това ще стане ?

Благодаря предварително !  ;)

#Редакция:
Сега ми хрумна ! Ще стане с функция подобна на strtotime() в PHP. if(time >= strtotime("18:50") && time() <= strtotime("20:10")) ..
Сега ще проверя в интернет за някаква такава, защото явно липсва в ctime и time библиотеките

#редакция 2:
Май номера ще стане с strptime, макар че се надявах на нещо по-простичко като strtotime в php.
Ако се оправя преди някой да е hint-нал ще пусна кода, защото предполагам ще е от полза за някои :)
« Последна редакция: Sep 26, 2009, 19:41 от staco »
Активен

dobrev666

  • Напреднали
  • *****
  • Публикации: 119
  • Distribution: Slackware, Slackware64
    • Профил
    • WWW
По принцип се прави с gmtime() или localtime() . Това са функции на С, може в С++ да има и други подобни.
Активен

dvasilev

  • Напреднали
  • *****
  • Публикации: 200
  • Distribution: Kubuntu, Debian
  • Window Manager: KDE
    • Профил
    • WWW
Цитат на: staco
Но работата е там че се записва и дата и няма да стане проверката от типа if(time() >= 1253980200 .... ), защото винаги днешната дата, ще е по-голяма от зададената в условието.. дори часа да съвпада

Някакви идеи как това ще стане ?

Като вземеш остатъка от делението на броя секунди в един ден ще си решиш проблема с различната дата.
Активен