Linux за българи: Форуми

Програмиране => Общ форум => Темата е започната от: staco в Sep 26, 2009, 19:19



Титла: C++ Проверка дали часа в момента влиза в определен период от време
Публикувано от: staco в Sep 26, 2009, 19:19
Здравейте отново  :)

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

Давам пример:
Часа: 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-нал ще пусна кода, защото предполагам ще е от полза за някои :)


Титла: Re: C++ Проверка дали часа в момента влиза в определен период от време
Публикувано от: dobrev666 в Sep 26, 2009, 20:06
По принцип се прави с gmtime() или localtime() . Това са функции на С, може в С++ да има и други подобни.


Титла: Re: C++ Проверка дали часа в момента влиза в определен период от време
Публикувано от: dvasilev в Sep 27, 2009, 20:48
Цитат на: staco
Но работата е там че се записва и дата и няма да стане проверката от типа if(time() >= 1253980200 .... ), защото винаги днешната дата, ще е по-голяма от зададената в условието.. дори часа да съвпада

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

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