I need to perform a simple loop until a specific date and time down to the second is reached. This would be based off of the Linux system time. I cannot find any samples online that demonstrate this. I'm using the boost library so any ideas that would incorporate boost are fine. Thanks.
to modify my question how do you compare one time structure to another to see which is larger?
using namespace std;
using namespace boost::local_time;
stringstream ss;
string strStartTime = "1/5/2014 10:59:59 AM";
local_time_input_facet *input_facet = new local_time_input_facet("%m/%d/%Y %H:%M:%S %p !");
ss.imbue(std::locale(ss.getloc(), input_facet));
local_date_time ldt(not_a_date_time);
string stringDateOnly = EasySplit(strStartTime, " ")[0];
string stringTimeOnly = EasySplit(strStartTime, " ")[1];
string stringMonthOnly = EasySplit(stringDateOnly, "/")[0];
string stringDayOnly = EasySplit(stringDateOnly, "/")[1];
string stringYearOnly = EasySplit(stringDateOnly, "/")[2];
string stringTimeHourOnly = EasySplit(stringTimeOnly, ":")[0];
string stringTimeMinuteOnly = EasySplit(stringTimeOnly, ":")[1];
string stringTimeSecondOnly = EasySplit(EasySplit(stringTimeOnly, ":")[2], " ")[0];
string stringTimeAMPMOnly = EasySplit(EasySplit(stringTimeOnly, ":")[2], " ")[1];
//if(stringMonthOnly.length()==1)
//{
// stringMonthOnly = "0" + stringMonthOnly;
//}
//if(stringDayOnly.length()==1)
//{
// stringDayOnly = "0" + stringDayOnly;
//}
//if(stringTimeHourOnly.length()==1)
//{
// stringTimeHourOnly = "0" + stringTimeHourOnly;
//}
//if(stringTimeMinuteOnly.length()==1)
//{
// stringTimeMinuteOnly = "0" + stringTimeMinuteOnly;
//}
//if(stringTimeSecondOnly.length()==1)
//{
// stringTimeSecondOnly = "0" + stringTimeSecondOnly;
//}
stringDateOnly = stringMonthOnly + "/" + stringDayOnly + "/" + stringYearOnly;
stringTimeOnly = stringTimeHourOnly + ":" + stringTimeMinuteOnly + ":" + stringTimeSecondOnly + " " + stringTimeAMPMOnly;
strStartTime = stringDateOnly + " " + stringTimeOnly;
ss.str(strStartTime);
ss >> ldt;
std::tm btm = {0};
btm.tm_sec = atoi(stringTimeSecondOnly.c_str());
btm.tm_min = atoi(stringTimeMinuteOnly.c_str());
btm.tm_hour = atoi(stringTimeHourOnly.c_str());
btm.tm_mday = atoi(stringDayOnly.c_str());
btm.tm_mon = atoi(stringMonthOnly.c_str());
btm.tm_year = atoi(stringYearOnly.c_str());
btm.tm_isdst = 1;
std::time_t tt = mktime(&btm);
boost::chrono::system_clock::time_point end_time = boost::chrono::system_clock::from_time_t(tt);
while (end_time > boost::chrono::system_clock::now())
{
cout << "Waiting\n";
}
cout << "EXIT\n";