-C Enhance\sthe\s"weekday\sN"\smodifier\sfor\sdate/time\sfunctions\ssuch\sthat\sif\nthe\sargument\sis\snegative,\sit\smove\sthe\sdate\sbackwards\sin\stime\sto\sthe\nmatching\sweekday,\srather\sthan\sforwards.
-D 2026-07-01T03:02:42.977
+C Add\s"end\sof\sday/month/year"\smodifiers\sto\sdate/time\sfunctions.
+D 2026-07-01T11:57:20.103
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F src/callback.c 3605bbf02bd7ed46c79cd48346db4a32fc51d67624400539c0532f4eead804ad
F src/carray.c 3efe3982d5fb323334c29328a4e189ccaef6b95612a6084ad5fa124fd5db1179
F src/complete.c f216b970ce99c5a657556cf1f17e7ddd494515d3beb63df426bf59ff43bd3d9a
-F src/date.c 36729f31ab5a8ea566271190d89c6d865d28f110a4db6a151259e240bdfbeb3f
+F src/date.c 46a518e94cd9c6d0ba1cc4d9af50bcd112a1e24a942e82a35235701731e9b042
F src/dbpage.c c6a9de13b0a01f0bc94a41e16213ab1ecd15ccfe86df7255ced40fda9446257d
F src/dbstat.c 73362c0df0f40ad5523a6f5501224959d0976757b511299bf892313e79d14f5c
F src/delete.c 59eeca3fb88c29329afc41bb803ee568b120d9dd7470b5f38ab55cc38390b451
F test/cursorhint.test d8b93ac48dfdb2cf4284142710d63e860b6497afff2e9c525daf752a229e5b97
F test/cursorhint2.test a10f29c0c52d4d73c19cf639f3c33cccbf5024bcf950fa48f2a8cdc14628b985
F test/dataversion1.test 6e5e86ac681f0782e766ebcb56c019ae001522d114e0e111e5ebf68ccf2a7bb8
-F test/date.test 00b94b54142684d9933cb9863113e33ee340e605abceb1139c0c982cf6626977
+F test/date.test 0c362a642cf3520a14eed6098faa454cd5def17c592c8dd4aa06894ca7e7ad5a
F test/date2.test 7e12ec14aaf4d5e6294b4ba140445b0eca06ea50062a9c3a69c4ee13d0b6f8b1
F test/date3.test a1b77abf05c6772fe5ca2337cac1398892f2a41e62bce7e6be0f4a08a0e64ae5
F test/date4.test b5ad22baf7394e008ac59383840159daedd45be31dcf74a3b2450ec0e28955ce
F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
-P 007f0496619e571092382a3668b6bbcc17919908895dc4be71f8d1b6ec2aeeed
-R 18313aa34d61ec6c7f4d87ce028e01a7
-T *branch * prev-weekday
-T *sym-prev-weekday *
-T -sym-trunk *
+P e31bea6ce188fb3ae2d8da132a40a182431d701dc6b991af470337a1cdd3f8e4
+R 1e8cc3c2fef8cd515a643be551bc5111
U drh
-Z b811783717ad5a74ebd02205196154d7
+Z 2e9ade7347393c5621e35f8d1718f262
# Remove this line to create a well-formed Fossil manifest.
datetest 2.12 {datetime('2003-10-22 12:34','weekday 0')} {2003-10-26 12:34:00}
datetest 2.13 {datetime('2003-10-22 12:34','start of month')} \
{2003-10-01 00:00:00}
+datetest 2.13b {datetime('2003-10-22 12:34','end of month')} \
+ {2003-10-31 23:59:59}
datetest 2.14 {datetime('2003-10-22 12:34','start of year')} \
{2003-01-01 00:00:00}
+datetest 2.14b {datetime('2003-10-22 12:34','end of year')} \
+ {2003-12-31 23:59:59}
datetest 2.15 {datetime('2003-10-22 12:34','start of day')} \
{2003-10-22 00:00:00}
-datetest 2.15a {datetime('2003-10-22 12:34','start of')} NULL
-datetest 2.15b {datetime('2003-10-22 12:34','start of bogus')} NULL
+datetest 2.15b {datetime('2003-10-22 12:34','end of day','subsec')} \
+ {2003-10-22 23:59:59.999}
+datetest 2.15c {datetime('2003-10-22 12:34','start of')} NULL
+datetest 2.15d {datetime('2003-10-22 12:34','start of bogus')} NULL
+datetest 2.15e {datetime('2003-10-22 12:34','end of')} NULL
+datetest 2.15f {datetime('2003-10-22 12:34','end of bogus')} NULL
datetest 2.16 time('12:34:56.43') 12:34:56
datetest 2.17 {datetime('2003-10-22 12:34','1 day')} {2003-10-23 12:34:00}
datetest 2.18 {datetime('2003-10-22 12:34','+1 day')} {2003-10-23 12:34:00}
datetest 20.3 {datetime('2024-12-31 23:59:59.9995')} {2024-12-31 23:59:59}
datetest 20.4 {datetime('2024-12-31 23:59:58.9995')} {2024-12-31 23:59:58}
+# 2026-07-01
+# Additional tests for the new "weekday -N" and "end of ..." modifiers.
+#
+datetest 21.1 {date('2026-07-04','weekday +0')} {2026-07-05}
+datetest 21.2 {date('2026-07-05','weekday -0')} {2026-07-05}
+datetest 21.3 {date('2026-07-04','weekday -0')} {2026-06-28}
+datetest 21.4 {date('2026-07-03','weekday -0')} {2026-06-28}
+datetest 21.5 {date('2026-07-02','weekday -0')} {2026-06-28}
+datetest 21.6 {date('2026-07-01','weekday -0')} {2026-06-28}
+datetest 21.7 {date('2026-06-30','weekday -0')} {2026-06-28}
+datetest 21.8 {date('2026-06-29','weekday -0')} {2026-06-28}
+datetest 21.9 {date('2026-06-28','weekday -0')} {2026-06-28}
+datetest 21.10 {date('2026-07-05','weekday +0')} {2026-07-05}
+datetest 21.11 {date('2026-07-04','weekday +0')} {2026-07-05}
+datetest 21.12 {date('2026-07-03','weekday +0')} {2026-07-05}
+datetest 21.13 {date('2026-07-02','weekday +0')} {2026-07-05}
+datetest 21.14 {date('2026-07-01','weekday +0')} {2026-07-05}
+datetest 21.15 {date('2026-06-30','weekday +0')} {2026-07-05}
+datetest 21.16 {date('2026-06-29','weekday +0')} {2026-07-05}
+datetest 21.17 {date('2026-06-28','weekday +0')} {2026-06-28}
+datetest 22.1 {datetime('2026-02-17 12:34','end of day','subsec')} \
+ {2026-02-17 23:59:59.999}
+datetest 22.2 {datetime('2026-02-17 12:34','end of month','subsec')} \
+ {2026-02-28 23:59:59.999}
+datetest 22.3 {datetime('2024-02-17 12:34','end of month','subsec')} \
+ {2024-02-29 23:59:59.999}
+datetest 22.4 {datetime('1900-02-17 12:34','end of month','subsec')} \
+ {1900-02-28 23:59:59.999}
+datetest 22.5 {datetime('2026-12-17 12:34','end of month','subsec')} \
+ {2026-12-31 23:59:59.999}
+datetest 22.6 {datetime('2026-02-17 12:34','end of year','subsec')} \
+ {2026-12-31 23:59:59.999}
+datetest 22.7 {datetime('2026-02-17 12:34','end of time','subsec')} {NULL}
+
+
+
finish_test