Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix a round-off error in the %W and %j conversions of the strftime() function. Ticket #2150. (CVS 3570) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
52067937803e6b36afc8f11c5d240594 |
User & Date: | drh 2007-01-08 13:07:30.000 |
Context
2007-01-08
| ||
13:40 | Add the $(BEXE) suffix to every mention of "lemon" in the Makefile.in, so that the build will work on OS/2. Ticket #2149. (CVS 3571) (check-in: f5989a0bd3 user: drh tags: trunk) | |
13:07 | Fix a round-off error in the %W and %j conversions of the strftime() function. Ticket #2150. (CVS 3570) (check-in: 5206793780 user: drh tags: trunk) | |
2007-01-06
| ||
13:11 | Another typo fixed in changes.html (CVS 3569) (check-in: 70033a0ea4 user: drh tags: trunk) | |
Changes
Changes to src/date.c.
︙ | ︙ | |||
12 13 14 15 16 17 18 | ** This file contains the C functions that implement date and time ** functions for SQLite. ** ** There is only one exported symbol in this file - the function ** sqlite3RegisterDateTimeFunctions() found at the bottom of the file. ** All other code has file scope. ** | | | 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | ** This file contains the C functions that implement date and time ** functions for SQLite. ** ** There is only one exported symbol in this file - the function ** sqlite3RegisterDateTimeFunctions() found at the bottom of the file. ** All other code has file scope. ** ** $Id: date.c,v 1.59 2007/01/08 13:07:30 drh Exp $ ** ** NOTES: ** ** SQLite processes all times and dates as Julian Day numbers. The ** dates and times are stored as the number of days since noon ** in Greenwich on November 24, 4714 B.C. according to the Gregorian ** calendar system. |
︙ | ︙ | |||
836 837 838 839 840 841 842 | case 'j': { int nDay; /* Number of days since 1st day of year */ DateTime y = x; y.validJD = 0; y.M = 1; y.D = 1; computeJD(&y); | | | 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 | case 'j': { int nDay; /* Number of days since 1st day of year */ DateTime y = x; y.validJD = 0; y.M = 1; y.D = 1; computeJD(&y); nDay = x.rJD - y.rJD + 0.5; if( zFmt[i]=='W' ){ int wd; /* 0=Monday, 1=Tuesday, ... 6=Sunday */ wd = ((int)(x.rJD+0.5)) % 7; sprintf(&z[j],"%02d",(nDay+7-wd)/7); j += 2; }else{ sprintf(&z[j],"%03d",nDay+1); |
︙ | ︙ |
Changes to test/date.test.
1 2 3 4 5 6 7 8 9 10 11 12 13 | # 2003 October 31 # # The author disclaims copyright to this source code. In place of # a legal notice, here is a blessing: # # May you do good and not evil. # May you find forgiveness for yourself and forgive others. # May you share freely, never taking more than you give. # #*********************************************************************** # This file implements regression tests for SQLite library. The # focus of this file is testing date and time functions. # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | # 2003 October 31 # # The author disclaims copyright to this source code. In place of # a legal notice, here is a blessing: # # May you do good and not evil. # May you find forgiveness for yourself and forgive others. # May you share freely, never taking more than you give. # #*********************************************************************** # This file implements regression tests for SQLite library. The # focus of this file is testing date and time functions. # # $Id: date.test,v 1.18 2007/01/08 13:07:30 drh Exp $ set testdir [file dirname $argv0] source $testdir/tester.tcl # Skip this whole file if date and time functions are omitted # at compile-time # |
︙ | ︙ | |||
119 120 121 122 123 124 125 126 127 128 129 130 131 132 | datetest 3.11.8 {strftime('%W','2004-01-07')} 01 datetest 3.11.9 {strftime('%W','2004-01-08')} 01 datetest 3.11.10 {strftime('%W','2004-01-09')} 01 datetest 3.11.11 {strftime('%W','2004-07-18')} 28 datetest 3.11.12 {strftime('%W','2004-12-31')} 52 datetest 3.11.13 {strftime('%W','2007-12-31')} 53 datetest 3.11.14 {strftime('%W','2007-01-01')} 01 datetest 3.12 {strftime('%Y','2003-10-31 12:34:56.432')} 2003 datetest 3.13 {strftime('%%','2003-10-31 12:34:56.432')} % datetest 3.14 {strftime('%_','2003-10-31 12:34:56.432')} NULL datetest 3.15 {strftime('%Y-%m-%d','2003-10-31')} 2003-10-31 proc repeat {n txt} { set x {} while {$n>0} { | > > > > > > > > > > > | 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 | datetest 3.11.8 {strftime('%W','2004-01-07')} 01 datetest 3.11.9 {strftime('%W','2004-01-08')} 01 datetest 3.11.10 {strftime('%W','2004-01-09')} 01 datetest 3.11.11 {strftime('%W','2004-07-18')} 28 datetest 3.11.12 {strftime('%W','2004-12-31')} 52 datetest 3.11.13 {strftime('%W','2007-12-31')} 53 datetest 3.11.14 {strftime('%W','2007-01-01')} 01 datetest 3.11.15 {strftime('%W %j',2454109.04140970)} {02 008} datetest 3.11.16 {strftime('%W %j',2454109.04140971)} {02 008} datetest 3.11.17 {strftime('%W %j',2454109.04140972)} {02 008} datetest 3.11.18 {strftime('%W %j',2454109.04140973)} {02 008} datetest 3.11.19 {strftime('%W %j',2454109.04140974)} {02 008} datetest 3.11.20 {strftime('%W %j',2454109.04140975)} {02 008} datetest 3.11.21 {strftime('%W %j',2454109.04140976)} {02 008} datetest 3.11.22 {strftime('%W %j',2454109.04140977)} {02 008} datetest 3.11.22 {strftime('%W %j',2454109.04140978)} {02 008} datetest 3.11.22 {strftime('%W %j',2454109.04140979)} {02 008} datetest 3.11.22 {strftime('%W %j',2454109.04140980)} {02 008} datetest 3.12 {strftime('%Y','2003-10-31 12:34:56.432')} 2003 datetest 3.13 {strftime('%%','2003-10-31 12:34:56.432')} % datetest 3.14 {strftime('%_','2003-10-31 12:34:56.432')} NULL datetest 3.15 {strftime('%Y-%m-%d','2003-10-31')} 2003-10-31 proc repeat {n txt} { set x {} while {$n>0} { |
︙ | ︙ |