Richard Fox wrote:
> This question relates to both mysql in general and the mysql++ C++ API in particular,
> thus the adressing to both lists.
> I have a DateTime object (really a formatted string) say "2002-07-10 11:38:38". I
> want to subtract some variable number of hours (from 0 to 11) from it. How do I accomplish
> this in an elegant manner?
> There is quite a bit of logic to handle all the cases where subtracting hours takes
> the date one day back, which can take the month one month back, which can take the year
> one year back! And of couse all the months have different lengths so this can be some ugly
> code. I can do this the hard way, but I was wondering if anyone already has a nice
Are you going to be doing this often (e.g., dateroll conventions,
holiday/weekend avoidance). If so, your object should be smarter than
just keeping the string. E.g., it might want to have a notion of the
julian date, time in UTC, etc., etc.
Convert the date to struct tm, call mktime(). You now have number of
seconds since the epoch of 1970. Subtract x-hours * 60 minutes * 60
seconds. Convert back to a struct tm, and fire off strftime.
Real cheap: make MySql dope it out, and take the network hit,
SELECT "2002-07-10 11:38:38" - INTERVAL 11 HOUR;
____ .:. ____
Bryan W. Headley - bwheadley@stripped