--- parser3/src/classes/date.C 2006/11/17 09:31:16 1.74 +++ parser3/src/classes/date.C 2007/04/23 10:30:09 1.77 @@ -5,7 +5,7 @@ Author: Alexandr Petrosian (http://paf.design.ru) */ -static const char * const IDENT_DATE_C="$Date: 2006/11/17 09:31:16 $"; +static const char * const IDENT_DATE_C="$Date: 2007/04/23 10:30:09 $"; #include "classes.h" #include "pa_vmethod_frame.h" @@ -132,7 +132,7 @@ static void _create(Request& r, MethodPa vdate.set_time(t); } } else { // ^create(y;m;d[;h[;m[;s]]]) - assert(params.count()>6); + assert(params.count()<=6); tm tmIn; memset(&tmIn, 0, sizeof(tmIn)); tmIn.tm_isdst=-1; tmIn.tm_year=to_tm_year(params.as_int(0, "year must be int", r)); @@ -171,7 +171,7 @@ static void _roll(Request& r, MethodPara vdate.set_tz(&argument_tz); return; } else - throw Exception("parser.runtime", + throw Exception(PARSER_RUNTIME, &what, "must be year|month|day|TZ"); @@ -290,7 +290,8 @@ static Table& fill_month_days(Request& r const int weekno_buf_size=2+1/*for stupid snprintfs*/ +1; weekno_buf=new(PointerFreeGC) char[weekno_buf_size]; - weekno_size=snprintf(weekno_buf, weekno_buf_size, "%02d", VDate::week_no(tms)); + VDate::yw week = VDate::CalcWeek(tms); + weekno_size=snprintf(weekno_buf, weekno_buf_size, "%02d", week.week); } } @@ -364,7 +365,7 @@ static void _calendar(Request& r, Method else if(what=="eng") rus=false; else - throw Exception("parser.runtime", + throw Exception(PARSER_RUNTIME, &what, "must be rus|eng");