2010-07-02 114 views
1

我需要根据一天中的时间生成值,是否有一个简单的方法来实现这一点?检查时间是否在C++的特定时间间隔?

从9-12值应为X之间 - Ÿ

6-9值应该是之间 - B

是否有任何其他的方式比让timeinfo结构和提取小时出来的吗?

+3

这很大程度上取决于您的操作系统和特定的库,您正在使用...另外我想知道为什么它不够整洁,以获得timeinfo和提取小时? =) – SadSido 2010-07-02 07:23:49

+0

@SadSido当人们试图改变它并修改特定的东西时,它没有传达意图。我不知道如何解释.. 谢谢:)虽然。 – 2010-07-02 08:50:36

回答

1

你应该看看boost::posix_time

using namespace boost::posix_time; 
using namespace boost::gregorian; 

ptime now = second_clock::local_time(); 

// You can compare now with other ptime values 
ptime nine_o_clock = day_clock::local_day() + hours(9); 
ptime twelve_o_clock = day_clock::local_day() + hours(12); 

if ((now >= nine_o_clock) && (now < twelve_o_clock)) 
{ 
    // Do what you want. 
} 
+0

day_clock :: local_day()返回date_time 无法转换为ptime,这是我在尝试此操作时遇到的错误。我不得不进一步检查,因为我必须提交,所以使用* strftime *代替 – 2010-07-03 01:46:21

+0

@Gollumn:对不起,当我键入这个时,我没有编译器在机器上。不过,我敢肯定有一种方法可以使用某个特定的构造函数或函数将'gregorian_date'转换为'ptime'。你检查了我链接的页面吗? 'boost'时间库是我见过的最完整的一个,如果这样简单的事情是不可能的,我会感到惊讶。 – ereOn 2010-07-03 07:39:48

相关问题