summaryrefslogtreecommitdiff
path: root/ext/sqlite/libsqlite/src/date.c
diff options
context:
space:
mode:
authorIlia Alshanetsky <iliaa@php.net>2005-09-07 15:11:33 +0000
committerIlia Alshanetsky <iliaa@php.net>2005-09-07 15:11:33 +0000
commit7f293b91b425b4dc1c0342f688a05ec403ea9e89 (patch)
tree503c849c7a95a53e63d0f24534e3bcc4bda63981 /ext/sqlite/libsqlite/src/date.c
parentcaa9702a5a45b09c648a26e8651c5e0799e08acd (diff)
downloadphp-git-7f293b91b425b4dc1c0342f688a05ec403ea9e89.tar.gz
MFH: Upgraded SQLite 2 library in ext/sqlite to 2.8.16
Diffstat (limited to 'ext/sqlite/libsqlite/src/date.c')
-rw-r--r--ext/sqlite/libsqlite/src/date.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/ext/sqlite/libsqlite/src/date.c b/ext/sqlite/libsqlite/src/date.c
index d7382aefae..c7489ec078 100644
--- a/ext/sqlite/libsqlite/src/date.c
+++ b/ext/sqlite/libsqlite/src/date.c
@@ -800,18 +800,20 @@ static void strftimeFunc(sqlite_func *context, int argc, const char **argv){
case 'H': sprintf(&z[j],"%02d",x.h); j+=2; break;
case 'W': /* Fall thru */
case 'j': {
- int n;
+ int n; /* Number of days since 1st day of year */
DateTime y = x;
y.validJD = 0;
y.M = 1;
y.D = 1;
computeJD(&y);
- n = x.rJD - y.rJD + 1;
+ n = x.rJD - y.rJD;
if( zFmt[i]=='W' ){
- sprintf(&z[j],"%02d",(n+6)/7);
+ int wd; /* 0=Monday, 1=Tuesday, ... 6=Sunday */
+ wd = ((int)(x.rJD+0.5)) % 7;
+ sprintf(&z[j],"%02d",(n+7-wd)/7);
j += 2;
}else{
- sprintf(&z[j],"%03d",n);
+ sprintf(&z[j],"%03d",n+1);
j += 3;
}
break;
@@ -847,19 +849,18 @@ static void strftimeFunc(sqlite_func *context, int argc, const char **argv){
** external linkage.
*/
void sqliteRegisterDateTimeFunctions(sqlite *db){
+#ifndef SQLITE_OMIT_DATETIME_FUNCS
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;
@@ -870,4 +871,5 @@ void sqliteRegisterDateTimeFunctions(sqlite *db){
sqlite_function_type(db, aFuncs[i].zName, aFuncs[i].dataType);
}
}
+#endif
}