+2005-03-28 Matthias Clasen <mclasen@redhat.com>
+
+ * tests/date-test.c:
+ * tests/testgdate.c: Add tests for
+ g_date_get_iso8601_week_of_year().
+
+ * glib/gdate.c (g_date_get_iso8601_week_of_year):
+ Fix the calculation. (#169858, Jon-Kare Hellan)
+
2005-03-27 Tor Lillqvist <tml@novell.com>
* configure.in: Apparently AC_LIBTOOL_WIN32_DLL isn't deprecated
+2005-03-28 Matthias Clasen <mclasen@redhat.com>
+
+ * tests/date-test.c:
+ * tests/testgdate.c: Add tests for
+ g_date_get_iso8601_week_of_year().
+
+ * glib/gdate.c (g_date_get_iso8601_week_of_year):
+ Fix the calculation. (#169858, Jon-Kare Hellan)
+
2005-03-27 Tor Lillqvist <tml@novell.com>
* configure.in: Apparently AC_LIBTOOL_WIN32_DLL isn't deprecated
+2005-03-28 Matthias Clasen <mclasen@redhat.com>
+
+ * tests/date-test.c:
+ * tests/testgdate.c: Add tests for
+ g_date_get_iso8601_week_of_year().
+
+ * glib/gdate.c (g_date_get_iso8601_week_of_year):
+ Fix the calculation. (#169858, Jon-Kare Hellan)
+
2005-03-27 Tor Lillqvist <tml@novell.com>
* configure.in: Apparently AC_LIBTOOL_WIN32_DLL isn't deprecated
+2005-03-28 Matthias Clasen <mclasen@redhat.com>
+
+ * tests/date-test.c:
+ * tests/testgdate.c: Add tests for
+ g_date_get_iso8601_week_of_year().
+
+ * glib/gdate.c (g_date_get_iso8601_week_of_year):
+ Fix the calculation. (#169858, Jon-Kare Hellan)
+
2005-03-27 Tor Lillqvist <tml@novell.com>
* configure.in: Apparently AC_LIBTOOL_WIN32_DLL isn't deprecated
* Julian Period which starts on 1 January 4713 BC, so we add
* 1,721,425 to the number of days before doing the formula.
*/
- j = d->julian + 1721425;
+ j = d->julian_days + 1721425;
d4 = (j + 31741 - (j % 7)) % 146097 % 36524 % 1461;
L = d4 / 1460;
d1 = ((d4 - L) % 365) + L;
guint sunday_weeks_in_year = g_date_get_sunday_weeks_in_year(y);
guint monday_week_of_year = 0;
guint monday_weeks_in_year = g_date_get_monday_weeks_in_year(y);
+ guint iso8601_week_of_year = 0;
if (discontinuity)
g_print(" (Break in sequence of requested years to check)\n");
TEST("Monday week of year on Monday 1 more than previous day's week of year",
(g_date_get_monday_week_of_year(d) - monday_week_of_year) == 1);
+ if ((m == G_DATE_JANUARY && day <= 4) ||
+ (m == G_DATE_DECEMBER && day >= 29)) {
+ TEST("ISO 8601 week of year on Monday Dec 29 - Jan 4 is 1",
+ (g_date_get_iso8601_week_of_year(d) == 1));
+ } else {
+ TEST("ISO 8601 week of year on Monday 1 more than previous day's week of year",
+ (g_date_get_iso8601_week_of_year(d) - iso8601_week_of_year) == 1);
+ }
}
else
{
TEST("Monday week of year on non-Monday 0 more than previous day's week of year",
(g_date_get_monday_week_of_year(d) - monday_week_of_year) == 0);
+ if (!(day == 1 && m == G_DATE_JANUARY)) {
+ TEST("ISO 8601 week of year on non-Monday 0 more than previous day's week of year (",
+ (g_date_get_iso8601_week_of_year(d) - iso8601_week_of_year) == 0);
+ }
}
monday_week_of_year = g_date_get_monday_week_of_year(d);
+ iso8601_week_of_year = g_date_get_iso8601_week_of_year(d);
TEST("Sunday week of year is not more than number of weeks in the year",
guint sunday_weeks_in_year = g_date_get_sunday_weeks_in_year(y);
guint monday_week_of_year = 0;
guint monday_weeks_in_year = g_date_get_monday_weeks_in_year(y);
+ guint iso8601_week_of_year = 0;
if (discontinuity)
g_print(" (Break in sequence of requested years to check)\n");
TEST("Monday week of year on Monday 1 more than previous day's week of year",
(g_date_get_monday_week_of_year(d) - monday_week_of_year) == 1);
+ if ((m == G_DATE_JANUARY && day <= 4) ||
+ (m == G_DATE_DECEMBER && day >= 29)) {
+ TEST("ISO 8601 week of year on Monday Dec 29 - Jan 4 is 1",
+ (g_date_get_iso8601_week_of_year(d) == 1));
+ } else {
+ TEST("ISO 8601 week of year on Monday 1 more than previous day's week of year",
+ (g_date_get_iso8601_week_of_year(d) - iso8601_week_of_year) == 1);
+ }
}
else
{
TEST("Monday week of year on non-Monday 0 more than previous day's week of year",
(g_date_get_monday_week_of_year(d) - monday_week_of_year) == 0);
+ if (!(day == 1 && m == G_DATE_JANUARY)) {
+ TEST("ISO 8601 week of year on non-Monday 0 more than previous day's week of year (",
+ (g_date_get_iso8601_week_of_year(d) - iso8601_week_of_year) == 0);
+ }
}
monday_week_of_year = g_date_get_monday_week_of_year(d);
+ iso8601_week_of_year = g_date_get_iso8601_week_of_year(d);
TEST("Sunday week of year is not more than number of weeks in the year",