|
|
| version 1.34, 2002/08/05 11:28:09 | version 1.37, 2002/09/18 08:52:47 |
|---|---|
| Line 29 public: // Methoded | Line 29 public: // Methoded |
| static void _now(Request& r, const String& method_name, MethodParams *params) { | static void _now(Request& r, const String& method_name, MethodParams *params) { |
| Pool& pool=r.pool(); | Pool& pool=r.pool(); |
| VDate *vdate=static_cast<VDate *>(r.self); | VDate *vdate=static_cast<VDate *>(r.get_self()); |
| time_t t=time(0); | time_t t=time(0); |
| if(params->size()==1) // ^now(offset) | if(params->size()==1) // ^now(offset) |
| Line 49 static int NN_year_to_NNNN(int year) { | Line 49 static int NN_year_to_NNNN(int year) { |
| /// @test 09 ok? [octal maybe] | /// @test 09 ok? [octal maybe] |
| static void _create(Request& r, const String& method_name, MethodParams *params) { | static void _create(Request& r, const String& method_name, MethodParams *params) { |
| Pool& pool=r.pool(); | Pool& pool=r.pool(); |
| VDate *vdate=static_cast<VDate *>(r.self); | VDate *vdate=static_cast<VDate *>(r.get_self()); |
| time_t t; | time_t t; |
| if(params->size()==1) { | if(params->size()==1) { |
| Line 122 date_part_set: | Line 122 date_part_set: |
| static void _sql_string(Request& r, const String& method_name, MethodParams *) { | static void _sql_string(Request& r, const String& method_name, MethodParams *) { |
| Pool& pool=r.pool(); | Pool& pool=r.pool(); |
| VDate *vdate=static_cast<VDate *>(r.self); | VDate *vdate=static_cast<VDate *>(r.get_self()); |
| int size=1+ 4+1+2+1+2 +1+ 2+1+2+1+2 +1 +1; | int size=1+ 4+1+2+1+2 +1+ 2+1+2+1+2 +1 +1; |
| char *buf=(char *)pool.malloc(size); | char *buf=(char *)pool.malloc(size); |
| time_t time=vdate->get_time(); | time_t time=vdate->get_time(); |
| Line 138 static void _sql_string(Request& r, cons | Line 138 static void _sql_string(Request& r, cons |
| static void _roll(Request& r, const String& method_name, MethodParams *params) { | static void _roll(Request& r, const String& method_name, MethodParams *params) { |
| Pool& pool=r.pool(); | Pool& pool=r.pool(); |
| VDate *vdate=static_cast<VDate *>(r.self); | VDate *vdate=static_cast<VDate *>(r.get_self()); |
| const String& what=params->as_string(0, "'what' must be string"); | const String& what=params->as_string(0, "'what' must be string"); |
| int oyear=0; | int oyear=0; |
| Line 229 static Table *fill_month_days(Request& r | Line 229 static Table *fill_month_days(Request& r |
| // calculating year week no [1..54] | // calculating year week no [1..54] |
| char *weekno_buf; | char *weekno_buf; |
| size_t weekno_size; | size_t weekno_size; |
| int weekyear; | |
| // 0..6 week days-cells fill with month days | // 0..6 week days-cells fill with month days |
| for(int wday=0; wday<7; wday++, _day++) { | for(int wday=0; wday<7; wday++, _day++) { |
| String *cell=new(pool) String(pool); | String *cell=new(pool) String(pool); |
| Line 243 static Table *fill_month_days(Request& r | Line 244 static Table *fill_month_days(Request& r |
| tm tms={0,0,0, _day, month, year-1900}; | tm tms={0,0,0, _day, month, year-1900}; |
| /*normalize*/mktime(&tms); | /*normalize*/mktime(&tms); |
| const int weekno_buf_size=2+1; | weekyear=tms.tm_year+1900; |
| const int weekno_buf_size=2+1/*for stupid snprintfs*/ +1; | |
| // http://www.merlyn.demon.co.uk/weekinfo.htm | // http://www.merlyn.demon.co.uk/weekinfo.htm |
| const int FirstThurs[] = {7,5,4,3,2,7,6,5,4,2,1,7,6,4,3,2,1,6,5,4,3,1,7,6,5,3,2,1}; | const int FirstThurs[] = {7,5,4,3,2,7,6,5,4,2,1,7,6,4,3,2,1,6,5,4,3,1,7,6,5,3,2,1}; |
| int n=1 + (tms.tm_yday-(FirstThurs[(tms.tm_year+1900) % 28]-3))/7; | int n=1 + (tms.tm_yday-(FirstThurs[weekyear % 28]-3))/7; |
| weekno_buf=(char *)pool.malloc(weekno_buf_size); | weekno_buf=(char *)pool.malloc(weekno_buf_size); |
| weekno_size=snprintf(weekno_buf, weekno_buf_size, "%02d", n); | weekno_size=snprintf(weekno_buf, weekno_buf_size, "%02d", n); |
| } | } |
| Line 260 static Table *fill_month_days(Request& r | Line 263 static Table *fill_month_days(Request& r |
| method_name.origin().file, method_name.origin().line); | method_name.origin().file, method_name.origin().line); |
| row+=cell; | row+=cell; |
| } | } |
| // appending year week year | |
| { | |
| String *cell=new(pool) String(pool); | |
| char *buf=(char *)pool.malloc(4+1); | |
| cell->APPEND_CLEAN(buf, sprintf(buf, "%02d", weekyear), | |
| method_name.origin().file, method_name.origin().line); | |
| row+=cell; | |
| } | |
| *result+=&row; | *result+=&row; |
| } | } |