From 8b7f5b0b56343c66004100cad298b9864a42703e Mon Sep 17 00:00:00 2001 From: guy Date: Thu, 21 Apr 2005 14:46:05 +0000 Subject: [PATCH] Patch level : 2.2 Files correlati : Ricompilazione Demo : [ ] Commento : Corretta add_month in modo da supportare anche i mesi negativi git-svn-id: svn://10.65.10.50/trunk@12977 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- include/date.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/include/date.cpp b/include/date.cpp index 7bc716539..ae7dc7dbe 100755 --- a/include/date.cpp +++ b/include/date.cpp @@ -412,14 +412,24 @@ void TDate::get_week_year(int &weekd, int &yeard, bool complete) void TDate::addmonth(int nmonth) { - const int wday = day(); + int wday = day(); int wyear = year(); int wmonth = month() + nmonth; + while (wmonth > 12) { wmonth -= 12; wyear++; } + while (wmonth <= 0) + { + wmonth += 12; + wyear--; + } + const int last = last_day(wmonth, wyear); + if (wday > last) + wday = last; + _val = makedata(wday, wmonth, wyear); }