亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? date.c

?? Trolltech公司發布的基于C++圖形開發環境
?? C
?? 第 1 頁 / 共 2 頁
字號:
****     NNN days**     NNN hours**     NNN minutes**     NNN.NNNN seconds**     NNN months**     NNN years**     start of month**     start of year**     start of week**     start of day**     weekday N**     unixepoch**     localtime**     utc**** Return 0 on success and 1 if there is any kind of error.*/static int parseModifier(const char *zMod, DateTime *p){  int rc = 1;  int n;  double r;  char *z, zBuf[30];  z = zBuf;  for(n=0; n<sizeof(zBuf)-1 && zMod[n]; n++){    z[n] = tolower(zMod[n]);  }  z[n] = 0;  switch( z[0] ){    case 'l': {      /*    localtime      **      ** Assuming the current time value is UTC (a.k.a. GMT), shift it to      ** show local time.      */      if( strcmp(z, "localtime")==0 ){        computeJD(p);        p->rJD += localtimeOffset(p);        clearYMD_HMS_TZ(p);        rc = 0;      }      break;    }    case 'u': {      /*      **    unixepoch      **      ** Treat the current value of p->rJD as the number of      ** seconds since 1970.  Convert to a real julian day number.      */      if( strcmp(z, "unixepoch")==0 && p->validJD ){        p->rJD = p->rJD/86400.0 + 2440587.5;        clearYMD_HMS_TZ(p);        rc = 0;      }else if( strcmp(z, "utc")==0 ){        double c1;        computeJD(p);        c1 = localtimeOffset(p);        p->rJD -= c1;        clearYMD_HMS_TZ(p);        p->rJD += c1 - localtimeOffset(p);        rc = 0;      }      break;    }    case 'w': {      /*      **    weekday N      **      ** Move the date to the same time on the next occurrance of      ** weekday N where 0==Sunday, 1==Monday, and so forth.  If the      ** date is already on the appropriate weekday, this is a no-op.      */      if( strncmp(z, "weekday ", 8)==0 && getValue(&z[8],&r)>0                 && (n=r)==r && n>=0 && r<7 ){        int Z;        computeYMD_HMS(p);        p->validTZ = 0;        p->validJD = 0;        computeJD(p);        Z = p->rJD + 1.5;        Z %= 7;        if( Z>n ) Z -= 7;        p->rJD += n - Z;        clearYMD_HMS_TZ(p);        rc = 0;      }      break;    }    case 's': {      /*      **    start of TTTTT      **      ** Move the date backwards to the beginning of the current day,      ** or month or year.      */      if( strncmp(z, "start of ", 9)!=0 ) break;      z += 9;      computeYMD(p);      p->validHMS = 1;      p->h = p->m = 0;      p->s = 0.0;      p->validTZ = 0;      p->validJD = 0;      if( strcmp(z,"month")==0 ){        p->D = 1;        rc = 0;      }else if( strcmp(z,"year")==0 ){        computeYMD(p);        p->M = 1;        p->D = 1;        rc = 0;      }else if( strcmp(z,"day")==0 ){        rc = 0;      }      break;    }    case '+':    case '-':    case '0':    case '1':    case '2':    case '3':    case '4':    case '5':    case '6':    case '7':    case '8':    case '9': {      n = getValue(z, &r);      if( n<=0 ) break;      if( z[n]==':' ){        /* A modifier of the form (+|-)HH:MM:SS.FFF adds (or subtracts) the        ** specified number of hours, minutes, seconds, and fractional seconds        ** to the time.  The ".FFF" may be omitted.  The ":SS.FFF" may be        ** omitted.        */        const char *z2 = z;        DateTime tx;        int day;        if( !isdigit(*z2) ) z2++;        memset(&tx, 0, sizeof(tx));        if( parseHhMmSs(z2, &tx) ) break;        computeJD(&tx);        tx.rJD -= 0.5;        day = (int)tx.rJD;        tx.rJD -= day;        if( z[0]=='-' ) tx.rJD = -tx.rJD;        computeJD(p);        clearYMD_HMS_TZ(p);       p->rJD += tx.rJD;        rc = 0;        break;      }      z += n;      while( isspace(z[0]) ) z++;      n = strlen(z);      if( n>10 || n<3 ) break;      if( z[n-1]=='s' ){ z[n-1] = 0; n--; }      computeJD(p);      rc = 0;      if( n==3 && strcmp(z,"day")==0 ){        p->rJD += r;      }else if( n==4 && strcmp(z,"hour")==0 ){        p->rJD += r/24.0;      }else if( n==6 && strcmp(z,"minute")==0 ){        p->rJD += r/(24.0*60.0);      }else if( n==6 && strcmp(z,"second")==0 ){        p->rJD += r/(24.0*60.0*60.0);      }else if( n==5 && strcmp(z,"month")==0 ){        int x, y;        computeYMD_HMS(p);        p->M += r;        x = p->M>0 ? (p->M-1)/12 : (p->M-12)/12;        p->Y += x;        p->M -= x*12;        p->validJD = 0;        computeJD(p);        y = r;        if( y!=r ){          p->rJD += (r - y)*30.0;        }      }else if( n==4 && strcmp(z,"year")==0 ){        computeYMD_HMS(p);        p->Y += r;        p->validJD = 0;        computeJD(p);      }else{        rc = 1;      }      clearYMD_HMS_TZ(p);      break;    }    default: {      break;    }  }  return rc;}/*** Process time function arguments.  argv[0] is a date-time stamp.** argv[1] and following are modifiers.  Parse them all and write** the resulting time into the DateTime structure p.  Return 0** on success and 1 if there are any errors.*/static int isDate(int argc, const char **argv, DateTime *p){  int i;  if( argc==0 ) return 1;  if( argv[0]==0 || parseDateOrTime(argv[0], p) ) return 1;  for(i=1; i<argc; i++){    if( argv[i]==0 || parseModifier(argv[i], p) ) return 1;  }  return 0;}/*** The following routines implement the various date and time functions** of SQLite.*//***    julianday( TIMESTRING, MOD, MOD, ...)**** Return the julian day number of the date specified in the arguments*/static void juliandayFunc(sqlite_func *context, int argc, const char **argv){  DateTime x;  if( isDate(argc, argv, &x)==0 ){    computeJD(&x);    sqlite_set_result_double(context, x.rJD);  }}/***    datetime( TIMESTRING, MOD, MOD, ...)**** Return YYYY-MM-DD HH:MM:SS*/static void datetimeFunc(sqlite_func *context, int argc, const char **argv){  DateTime x;  if( isDate(argc, argv, &x)==0 ){    char zBuf[100];    computeYMD_HMS(&x);    sprintf(zBuf, "%04d-%02d-%02d %02d:%02d:%02d",x.Y, x.M, x.D, x.h, x.m,           (int)(x.s));    sqlite_set_result_string(context, zBuf, -1);  }}/***    time( TIMESTRING, MOD, MOD, ...)**** Return HH:MM:SS*/static void timeFunc(sqlite_func *context, int argc, const char **argv){  DateTime x;  if( isDate(argc, argv, &x)==0 ){    char zBuf[100];    computeHMS(&x);    sprintf(zBuf, "%02d:%02d:%02d", x.h, x.m, (int)x.s);    sqlite_set_result_string(context, zBuf, -1);  }}/***    date( TIMESTRING, MOD, MOD, ...)**** Return YYYY-MM-DD*/static void dateFunc(sqlite_func *context, int argc, const char **argv){  DateTime x;  if( isDate(argc, argv, &x)==0 ){    char zBuf[100];    computeYMD(&x);    sprintf(zBuf, "%04d-%02d-%02d", x.Y, x.M, x.D);    sqlite_set_result_string(context, zBuf, -1);  }}/***    strftime( FORMAT, TIMESTRING, MOD, MOD, ...)**** Return a string described by FORMAT.  Conversions as follows:****   %d  day of month**   %f  ** fractional seconds  SS.SSS**   %H  hour 00-24**   %j  day of year 000-366**   %J  ** Julian day number**   %m  month 01-12**   %M  minute 00-59**   %s  seconds since 1970-01-01**   %S  seconds 00-59**   %w  day of week 0-6  sunday==0**   %W  week of year 00-53**   %Y  year 0000-9999**   %%  %*/static void strftimeFunc(sqlite_func *context, int argc, const char **argv){  DateTime x;  int n, i, j;  char *z;  const char *zFmt = argv[0];  char zBuf[100];  if( argv[0]==0 || isDate(argc-1, argv+1, &x) ) return;  for(i=0, n=1; zFmt[i]; i++, n++){    if( zFmt[i]=='%' ){      switch( zFmt[i+1] ){        case 'd':        case 'H':        case 'm':        case 'M':        case 'S':        case 'W':          n++;          /* fall thru */        case 'w':        case '%':          break;        case 'f':          n += 8;          break;        case 'j':          n += 3;          break;        case 'Y':          n += 8;          break;        case 's':        case 'J':          n += 50;          break;        default:          return;  /* ERROR.  return a NULL */      }      i++;    }  }  if( n<sizeof(zBuf) ){    z = zBuf;  }else{    z = sqliteMalloc( n );    if( z==0 ) return;  }  computeJD(&x);  computeYMD_HMS(&x);  for(i=j=0; zFmt[i]; i++){    if( zFmt[i]!='%' ){      z[j++] = zFmt[i];    }else{      i++;      switch( zFmt[i] ){        case 'd':  sprintf(&z[j],"%02d",x.D); j+=2; break;        case 'f': {          int s = x.s;          int ms = (x.s - s)*1000.0;          sprintf(&z[j],"%02d.%03d",s,ms);          j += strlen(&z[j]);          break;        }        case 'H':  sprintf(&z[j],"%02d",x.h); j+=2; break;        case 'W': /* Fall thru */        case 'j': {          int n;          DateTime y = x;          y.validJD = 0;          y.M = 1;          y.D = 1;          computeJD(&y);          n = x.rJD - y.rJD + 1;          if( zFmt[i]=='W' ){            sprintf(&z[j],"%02d",(n+6)/7);            j += 2;          }else{            sprintf(&z[j],"%03d",n);            j += 3;          }          break;        }        case 'J':  sprintf(&z[j],"%.16g",x.rJD); j+=strlen(&z[j]); break;        case 'm':  sprintf(&z[j],"%02d",x.M); j+=2; break;        case 'M':  sprintf(&z[j],"%02d",x.m); j+=2; break;        case 's': {          sprintf(&z[j],"%d",(int)((x.rJD-2440587.5)*86400.0 + 0.5));          j += strlen(&z[j]);          break;        }        case 'S':  sprintf(&z[j],"%02d",(int)(x.s+0.5)); j+=2; break;        case 'w':  z[j++] = (((int)(x.rJD+1.5)) % 7) + '0'; break;        case 'Y':  sprintf(&z[j],"%04d",x.Y); j+=strlen(&z[j]); break;        case '%':  z[j++] = '%'; break;      }    }  }  z[j] = 0;  sqlite_set_result_string(context, z, -1);  if( z!=zBuf ){    sqliteFree(z);  }}#endif /* !defined(SQLITE_OMIT_DATETIME_FUNCS) *//*** This function registered all of the above C functions as SQL** functions.  This should be the only routine in this file with** external linkage.*/void sqliteRegisterDateTimeFunctions(sqlite *db){  static struct {     char *zName;     int nArg;     int dataType;     void (*xFunc)(sqlite_func*,int,const char**);  } aFuncs[] = {#ifndef SQLITE_OMIT_DATETIME_FUNCS    { "julianday", -1, SQLITE_NUMERIC, juliandayFunc   },    { "date",      -1, SQLITE_TEXT,    dateFunc        },    { "time",      -1, SQLITE_TEXT,    timeFunc        },    { "datetime",  -1, SQLITE_TEXT,    datetimeFunc    },    { "strftime",  -1, SQLITE_TEXT,    strftimeFunc    },#endif  };  int i;  for(i=0; i<sizeof(aFuncs)/sizeof(aFuncs[0]); i++){    sqlite_create_function(db, aFuncs[i].zName,           aFuncs[i].nArg, aFuncs[i].xFunc, 0);    if( aFuncs[i].xFunc ){      sqlite_function_type(db, aFuncs[i].zName, aFuncs[i].dataType);    }  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91在线视频官网| 99在线精品一区二区三区| 精品在线观看视频| 99国产精品久久久久久久久久久| 精品视频1区2区3区| 久久精品欧美日韩精品| 日本在线不卡视频| 日本电影欧美片| 国产精品欧美久久久久无广告| 亚洲成a人片在线观看中文| 成人高清免费观看| 久久久影视传媒| 青青草伊人久久| 欧美喷水一区二区| 一区二区三区久久久| 成人黄色免费短视频| 欧美激情一区二区三区| 韩国成人精品a∨在线观看| 欧美精品v国产精品v日韩精品| 一区二区三区日韩在线观看| eeuss影院一区二区三区| 久久精品在线观看| 国产精品中文字幕欧美| 精品99一区二区三区| 精品一区二区久久| www国产精品av| 国产精品系列在线播放| 久久综合九色综合97_久久久| 美女视频免费一区| 日韩免费看的电影| 久久99国产精品久久| 26uuu国产日韩综合| 久色婷婷小香蕉久久| 久久综合视频网| 国产精品一区二区久久不卡| 久久精品一区四区| 99久久99精品久久久久久| 一区二区三区四区不卡在线 | 蜜臀91精品一区二区三区| 欧美日产国产精品| 美女视频黄久久| 久久久综合九色合综国产精品| 国产91在线观看| 亚洲人被黑人高潮完整版| 91久久精品一区二区| 丝袜国产日韩另类美女| 精品国产乱码久久久久久牛牛| 国产美女精品人人做人人爽| 国产精品欧美经典| 欧美日韩久久久一区| 蜜臀av一区二区在线免费观看| 精品噜噜噜噜久久久久久久久试看| 国产麻豆视频精品| 亚洲欧美日韩国产综合在线| 精品视频在线视频| 国产一区二区在线观看视频| 中文字幕在线观看一区二区| 欧美在线|欧美| 国内精品视频666| 亚洲日本在线天堂| 91麻豆精品国产91久久久久久 | 中文字幕一区在线| 欧美日韩在线一区二区| 久久精品噜噜噜成人88aⅴ| 国产视频一区二区在线观看| 91黄色在线观看| 国模大尺度一区二区三区| 亚洲欧美一区二区三区极速播放 | 欧美精品久久久久久久多人混战| 精品一区二区av| 亚洲色图欧洲色图| 欧美mv和日韩mv国产网站| 91亚洲精品久久久蜜桃网站| 男男gaygay亚洲| 亚洲精品高清在线| 亚洲精品一区二区精华| 欧美性猛片xxxx免费看久爱| 韩国欧美一区二区| 五月婷婷综合激情| 亚洲欧美在线视频| 精品久久久久久最新网址| 欧美亚洲禁片免费| 成人禁用看黄a在线| 精品一区免费av| 首页国产欧美久久| 亚洲一区二区在线播放相泽| 国产亚洲欧美激情| 日韩欧美亚洲国产另类| 欧美日韩国产乱码电影| 91麻豆.com| a级精品国产片在线观看| 国产综合一区二区| 日韩二区三区四区| 亚洲6080在线| 亚洲第一综合色| 亚洲精品综合在线| 综合在线观看色| 中文字幕第一区综合| xfplay精品久久| 久久综合狠狠综合久久综合88 | 欧美性大战xxxxx久久久| 9i在线看片成人免费| 懂色av中文字幕一区二区三区| 奇米四色…亚洲| 免费观看成人av| 奇米精品一区二区三区在线观看一| 一区二区三区四区蜜桃| 一区二区国产盗摄色噜噜| 亚洲视频资源在线| 亚洲少妇屁股交4| 亚洲三级在线观看| 亚洲欧美日韩国产中文在线| 亚洲三级在线看| 一区二区国产盗摄色噜噜| 亚洲一区二区美女| 午夜精品久久久久久不卡8050| 性欧美大战久久久久久久久| 午夜精品影院在线观看| 偷窥少妇高潮呻吟av久久免费| 亚洲午夜精品网| 日韩综合小视频| 蜜乳av一区二区| 岛国av在线一区| 日本韩国欧美一区| 欧美久久久久久久久久| 日韩欧美一区二区久久婷婷| 欧美精品一区二区三| 国产精品情趣视频| 亚洲一区二区三区四区在线| 全部av―极品视觉盛宴亚洲| 日本成人在线网站| 国产大陆亚洲精品国产| 成人激情黄色小说| 欧美日韩中字一区| 精品捆绑美女sm三区| 国产欧美一二三区| 亚洲国产精品久久人人爱| 轻轻草成人在线| a级高清视频欧美日韩| 欧美日本一区二区三区| 久久久精品国产免费观看同学| 国产精品蜜臀av| 天堂成人国产精品一区| 国产成人aaaa| 欧美裸体bbwbbwbbw| 国产欧美视频一区二区| 亚洲综合偷拍欧美一区色| 麻豆freexxxx性91精品| eeuss鲁片一区二区三区在线看| 欧美午夜理伦三级在线观看| 精品国产一区二区三区四区四| 国产精品国产三级国产a| 日韩精品福利网| 91蝌蚪国产九色| 精品av综合导航| 天堂蜜桃91精品| av一本久道久久综合久久鬼色| 欧美一区二区三区喷汁尤物| 国产精品久久久久久久久免费樱桃| 亚洲黄色小视频| 国产乱子伦视频一区二区三区 | 国产日韩欧美在线一区| 亚洲一区二区三区四区在线观看| 国产在线日韩欧美| 欧美日韩激情一区二区三区| 国产三级一区二区三区| 午夜影院久久久| 91精品久久久久久久91蜜桃| 国产女主播视频一区二区| 日韩精品成人一区二区三区| 色综合中文字幕国产 | 欧美性猛片aaaaaaa做受| 国产欧美1区2区3区| 麻豆国产精品视频| 欧美日韩美女一区二区| 亚洲免费观看在线视频| 成人中文字幕电影| 久久久国产精品麻豆| 久久99久久99小草精品免视看| 欧美人动与zoxxxx乱| 亚洲精品久久7777| 成人午夜视频福利| 久久精品亚洲精品国产欧美 | 欧美这里有精品| 一区在线观看视频| 成人小视频在线观看| 337p粉嫩大胆噜噜噜噜噜91av| 日本欧美一区二区三区乱码| 91电影在线观看| 亚洲另类春色校园小说| 91丝袜美腿高跟国产极品老师| 久久精品在线观看| 国产成人av资源| 国产精品三级av在线播放| 国产成人自拍高清视频在线免费播放| 日韩一区和二区| 久久99精品久久久| 久久久精品免费免费| 高清成人免费视频| 17c精品麻豆一区二区免费|