pike.git / lib / modules / Calendar.pmod / YMD.pike

version» Context lines:

pike.git/lib/modules/Calendar.pmod/YMD.pike:2705:    if (d2 && d2->week()->day(m->e)==d2) break;    d2=(m2-i)->place(m->day);    if (d2 && d2->week()->day(m->e)==d2) break;    }    if (i==20) return 0;    low=m->day=d2;    }    }       int h=0,mi=0,s=0; +  float sub_second;    string g=0;       if (m->t)    {    if (sizeof(m->t)==6)    [h,mi,s]=(array(int))(m->t/2),g="second";    else if (sizeof(m->t)==4)    [h,mi]=(array(int))(m->t/2),g="minute";    else return 0;    }    else    {    if (!zero_type(m->h)) h=m->h,g="hour";    if (!zero_type(m->m)) mi=m->m,g="minute";    if (!zero_type(m->s)) s=m->s,g="second"; -  +  if (!zero_type(m->f)) sub_second=(float)("0."+m->f+"0"*9)[..10];    }       if (!zero_type(m->p))    {    switch (lower_case(m->p)-".")    {    case "am":    if (h==12) h=0;    break;    case "pm":    if (h!=12) h+=12;    break;    default:    return 0; // need "am" or "pm"    }    }       if (m->z) // zone -  return dwim_zone(low,m->z,g,h,mi,s); +  low = dwim_zone(low,m->z,g,h,mi,s);    else if (g) -  return dwim_tod(low,g,h,mi,s); -  else +  low = dwim_tod(low,g,h,mi,s); +  if (sub_second) +  low = low->fraction(sub_second);    return low;      #ifndef NOCATCH    })   #endif    return 0;   }      //! function Day dwim_day(string date)   //! function Day dwim_day(string date,TimeRange context)