Diff for /parser3/src/classes/date.C between versions 1.34 and 1.37

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;
     }      }
           

Removed from v.1.34  
changed lines
  Added in v.1.37


E-mail: