g_date_time_format: support %w

%w represents the day of the week as a decimal, range 0 to 6,
Sunday being 0.

https://bugzilla.gnome.org/show_bug.cgi?id=658061
This commit is contained in:
Javier Jardón 2011-09-02 17:22:14 +01:00 committed by Ryan Lortie
parent e975b5b75c
commit f421f0b883

View File

@ -2283,6 +2283,11 @@ get_numeric_format (gchar *fmt,
* 4 days in the new year. See g_date_time_get_week_of_year().
* </simpara></listitem></varlistentry>
* <varlistentry><term>
* <literal>%%w</literal>:
* </term><listitem><simpara>
* the day of the week as a decimal, range 0 to 6, Sunday being 0
* </simpara></listitem></varlistentry>
* <varlistentry><term>
* <literal>%%W</literal>:
* </term><listitem><simpara>
* the week number of the current year as a decimal number
@ -2544,6 +2549,15 @@ g_date_time_format (GDateTime *datetime,
get_numeric_format (fmt, sizeof(fmt), alt_digits, '0', 2);
g_string_append_printf (outstr, fmt, g_date_time_get_week_of_year (datetime));
break;
case 'w':
{
gint day_of_week = g_date_time_get_day_of_week (datetime);
if (day_of_week == 7)
day_of_week = 0;
get_numeric_format (fmt, sizeof(fmt), alt_digits, 0, 0);
g_string_append_printf (outstr, fmt, day_of_week);
}
break;
case 'W':
get_numeric_format (fmt, sizeof(fmt), alt_digits, 0, 0);
g_string_append_printf (outstr, fmt, g_date_time_get_day_of_year (datetime) / 7);