diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/projlib/new-modules/projlib-datetime.sty')
-rw-r--r-- | Master/texmf-dist/doc/latex/projlib/new-modules/projlib-datetime.sty | 1645 |
1 files changed, 1645 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/projlib/new-modules/projlib-datetime.sty b/Master/texmf-dist/doc/latex/projlib/new-modules/projlib-datetime.sty new file mode 100644 index 00000000000..d96d31d93b3 --- /dev/null +++ b/Master/texmf-dist/doc/latex/projlib/new-modules/projlib-datetime.sty @@ -0,0 +1,1645 @@ +\NeedsTeXFormat{LaTeX2e}[2020-10-01] +\RequirePackage{l3keys2e} +\ProvidesExplPackage + {projlib-datetime} + {2022/02/24} {} + {Convert numeric date-time string to natural language} + +\tl_new:N \g__projlib_datetime_input_format_tl +\tl_gset:Nn \g__projlib_datetime_input_format_tl { year-month-day } + +\keys_define:nn { projlib-datetime } + { + , plain .bool_set:N = \l__projlib_datetime_plain_bool + , plain .initial:n = { false } + , year-month-day .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { year-month-day } } + , month-day-year .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { month-day-year } } + , day-month-year .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { day-month-year } } + , year-month .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { year-month-day } } + , month-day .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { year-month-day } } + , month-year .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { day-month-year } } + , day-month .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { day-month-year } } + , unknown .code:n = {} + } +\ProcessKeysOptions { projlib-datetime } + +\bool_if:NT \l__projlib_datetime_plain_bool + { + \hook_gput_code:nnn { begindocument/before } { projlib-datetime } + { + \cs_set:Nn \projlib_datetime_text_superscript:n { #1 } + } + } + +\tl_new:N \l__projlib_datetime_output_format_tl +\keys_define:nn { projlib-datetime-command } + { + , year-month-day .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { year-month-day } } + , month-day-year .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { month-day-year } } + , day-month-year .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { day-month-year } } + , year-month .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { year-month-day } } + , month-day .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { year-month-day } } + , month-year .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { day-month-year } } + , day-month .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { day-month-year } } + , only-year-month .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-year-month } } + , only-month-day .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-month-day } } + , only-year .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-year } } + , only-month .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-month } } + , only-day .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-day } } + , unknown .code:n = {} + } + +\msg_new:nnnn { projlib-datetime } + { non-supported-date-format } + { The~date~format~"#1"~is~not~supported. } + { The~only~formats~available~are~"year-month-day",~ "month-day-year"~and~"day-month-year". } + +\cs_new:Nn \projlib_datetime_set_input_format:n + { + \str_case:nnF { #1 } + { + { year-month-day } { \tl_gset:Nn \g__projlib_datetime_input_format_tl { year-month-day } } + { month-day-year } { \tl_gset:Nn \g__projlib_datetime_input_format_tl { month-day-year } } + { day-month-year } { \tl_gset:Nn \g__projlib_datetime_input_format_tl { day-month-year } } + } + { + \msg_error:nnn { projlib-datetime } { non-supported-date-format } { #1 } + } + } + +\NewDocumentCommand \ProjLibSetDatetimeInputFormat { m } + { + \projlib_datetime_set_input_format:n { #1 } + } + + +\seq_new:N \l__projlib_datetime_date_seq + +\cs_new_protected:Nn \projlib_datetime_text_superscript:n + { + \group_begin: + \small + \textsuperscript { #1 } + \group_end: + } + + +\cs_new:Nn \__projlib_datetime_today:n + { + \str_case_e:nnF { \l__projlib_datetime_output_format_tl } + { + { only-year-month } + { + \cs_if_exist_use:c { projlib_datetime_display_year_month #1 _ \languagename :nn } + { \int_use:N \c_sys_year_int } + { \int_use:N \c_sys_month_int } + } + { only-month-day } + { + \cs_if_exist_use:c { projlib_datetime_display_month_day #1 _ \languagename :nn } + { \int_use:N \c_sys_month_int } + { \int_use:N \c_sys_day_int } + } + { only-year } + { + \cs_if_exist_use:cT { projlib_datetime_display_year #1 _ \languagename :n } + { + { \int_use:N \c_sys_year_int } + } + } + { only-month } + { + \cs_if_exist_use:cT { projlib_datetime_display_month #1 _ \languagename :n } + { + { \int_use:N \c_sys_month_int } + } + } + { only-day } + { + \cs_if_exist_use:cT { projlib_datetime_display_day #1 _ \languagename :n } + { + { \int_use:N \c_sys_day_int } + } + } + } + { + \cs_if_exist_use:c { projlib_datetime_display_year_month_day #1 _ \languagename :nnn } + { \int_use:N \c_sys_year_int } + { \int_use:N \c_sys_month_int } + { \int_use:N \c_sys_day_int } + } + } + +\NewDocumentCommand \ProjLibtoday { O{} } + { + \group_begin: + \keys_set:nn { projlib-datetime-command } { #1 } + \__projlib_datetime_today:n {} + \group_end: + } + +\NewDocumentCommand \ProjLibToday { O{} } + { + \group_begin: + \keys_set:nn { projlib-datetime-command } { #1 } + \__projlib_datetime_today:n { _uppercase } + \group_end: + } + +\ProvideDocumentCommand \Thedate {} { \ProjLibdate } +\ProvideDocumentCommand \TheDate {} { \ProjLibDate } + + +\cs_new_protected:Nn \projlib_datetime_display_year_month_day:n + { + \__projlib_datetime_display_year_month_day:en { #1 } {} + } + +\cs_new_protected:Nn \projlib_datetime_display_year_month_day_uppercase:n + { + \__projlib_datetime_display_year_month_day:en { #1 } { _uppercase } + } + +\cs_new_protected:Nn \__projlib_datetime_display_year_month_day:nn + { + \regex_match:nnTF { \A \d{4}-\d{1,2}-\d{1,2} \Z } { #1 } + { + \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 } + \cs_if_exist_use:c { projlib_datetime_display_year_month_day #2 _ \languagename :nnn } + { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % year + { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % month + { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 3 } } } % day + } + { + \regex_match:nnTF { \A \d{4}-\d{1,2} \Z } { #1 } + { + \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 } + \cs_if_exist_use:c { projlib_datetime_display_year_month #2 _ \languagename :nn } + { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % year + { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % month + } + { + \regex_match:nnTF { \A \d{1,2}-\d{1,2} \Z } { #1 } + { + \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 } + \cs_if_exist_use:c { projlib_datetime_display_month_day #2 _ \languagename :nn } + { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % month + { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % day + } + { + #1 + } + } + } + } +\cs_generate_variant:Nn \__projlib_datetime_display_year_month_day:nn { en } + + +\cs_new_protected:Nn \projlib_datetime_display_month_day_year:n +{ + \__projlib_datetime_display_month_day_year:en { #1 } {} +} + +\cs_new_protected:Nn \projlib_datetime_display_month_day_year_uppercase:n +{ + \__projlib_datetime_display_month_day_year:en { #1 } { _uppercase } +} + +\cs_new_protected:Nn \__projlib_datetime_display_month_day_year:nn +{ + \regex_match:nnTF { \A \d{1,2}-\d{1,2}-\d{4} \Z } { #1 } + { + \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 } + \cs_if_exist_use:c { projlib_datetime_display_month_day_year #2 _ \languagename :nnn } + { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 3 } } } % year + { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % month + { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % day + } + { + \regex_match:nnTF { \A \d{1,2}-\d{4} \Z } { #1 } + { + \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 } + \cs_if_exist_use:c { projlib_datetime_display_year_month #2 _ \languagename :nn } + { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % year + { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % month + } + { + \regex_match:nnTF { \A \d{1,2}-\d{1,2} \Z } { #1 } + { + \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 } + \cs_if_exist_use:c { projlib_datetime_display_month_day #2 _ \languagename :nn } + { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % month + { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % day + } + { + #1 + } + } + } +} +\cs_generate_variant:Nn \__projlib_datetime_display_month_day_year:nn { en } + + +\cs_new_protected:Nn \projlib_datetime_display_day_month_year:n +{ + \__projlib_datetime_display_day_month_year:en { #1 } {} +} + +\cs_new_protected:Nn \projlib_datetime_display_day_month_year_uppercase:n +{ + \__projlib_datetime_display_day_month_year:en { #1 } { _uppercase } +} + +\cs_new_protected:Nn \__projlib_datetime_display_day_month_year:nn +{ + \regex_match:nnTF { \A \d{1,2}-\d{1,2}-\d{4} \Z } { #1 } + { + \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 } + \cs_if_exist_use:c { projlib_datetime_display_day_month_year #2 _ \languagename :nnn } + { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 3 } } } % year + { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % month + { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % day + } + { + \regex_match:nnTF { \A \d{1,2}-\d{4} \Z } { #1 } + { + \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 } + \cs_if_exist_use:c { projlib_datetime_display_year_month #2 _ \languagename :nn } + { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % year + { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % month + } + { + \regex_match:nnTF { \A \d{1,2}-\d{1,2} \Z } { #1 } + { + \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 } + \cs_if_exist_use:c { projlib_datetime_display_month_day #2 _ \languagename :nn } + { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % month + { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % day + } + { + #1 + } + } + } +} +\cs_generate_variant:Nn \__projlib_datetime_display_day_month_year:nn { en } + + +\cs_new_protected:Nn \__projlib_datetime_date_parse_year_month_day:n + { + \regex_match:nnTF { \A \d{4}-\d{1,2}(|-\d{1,2}) \Z } { #1 } + { + \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 } + } + { + \regex_match:nnT { \A \d{1,2}-\d{1,2} \Z } { #1 } + { + \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 } + \seq_put_left:Nn \l__projlib_datetime_date_seq {} + } + } + } + +\cs_new_protected:Nn \__projlib_datetime_date_parse_month_day_year:n + { + \regex_match:nnTF { \A \d{1,2}(|-\d{1,2})-\d{4} \Z } { #1 } + { + \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 } + \seq_pop_right:NN \l__projlib_datetime_date_seq \l_tmpa_tl + \seq_put_left:NV \l__projlib_datetime_date_seq \l_tmpa_tl + } + { + \regex_match:nnT { \A \d{1,2}-\d{1,2} \Z } { #1 } + { + \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 } + \seq_put_left:Nn \l__projlib_datetime_date_seq {} + } + } + } + +\cs_new_protected:Nn \__projlib_datetime_date_parse_day_month_year:n + { + \regex_match:nnTF { \A \d{1,2}(|-\d{1,2})-\d{4} \Z } { #1 } + { + \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 } + \seq_reverse:N \l__projlib_datetime_date_seq + } + { + \regex_match:nnT { \A \d{1,2}-\d{1,2} \Z } { #1 } + { + \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 } + \seq_reverse:N \l__projlib_datetime_date_seq + \seq_put_left:Nn \l__projlib_datetime_date_seq {} + } + } + } + +\cs_new:Nn \__projlib_datetime_input_format_to_str: + { + \str_case_e:nn { \g__projlib_datetime_input_format_tl } + { + { year-month-day } { year_month_day } + { month-day-year } { month_day_year } + { day-month-year } { day_month_year } + } + } + +\cs_new_protected:Nn \__projlib_datetime_display_date_according_to_format:nn + { + \cs_if_exist_use:c { __projlib_datetime_date_parse_ \__projlib_datetime_input_format_to_str: :n } { #1 } + \str_case_e:nnF { \l__projlib_datetime_output_format_tl } + { + { only-year-month } + { + \cs_if_exist_use:c { projlib_datetime_display_year_month #2 _ \languagename :nn } + { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } + { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } + } + { only-month-day } + { + \cs_if_exist_use:c { projlib_datetime_display_month_day #2 _ \languagename :nn } + { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } + { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 3 } } } + } + { only-year } + { + \cs_if_exist_use:c { projlib_datetime_display_year #2 _ \languagename :n } + { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } + } + { only-month } + { + \cs_if_exist_use:c { projlib_datetime_display_month #2 _ \languagename :n } + { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } + } + { only-day } + { + \cs_if_exist_use:c { projlib_datetime_display_day #2 _ \languagename :n } + { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 3 } } } + } + } + { + \cs_if_exist_use:c { projlib_datetime_display_ \__projlib_datetime_input_format_to_str: #2 :n } { #1 } + } + } + +\NewDocumentCommand \ProjLibdate { O{} m } + { + \group_begin: + \keys_set:nn { projlib-datetime-command } { #1 } + \__projlib_datetime_display_date_according_to_format:nn { #2 } {} + \group_end: + } + +\NewDocumentCommand \ProjLibDate { O{} m } + { + \group_begin: + \keys_set:nn { projlib-datetime-command } { #1 } + \__projlib_datetime_display_date_according_to_format:nn { #2 } { _uppercase } + \group_end: + } + + +\int_new:N \l__projlib_datetime_day_of_week_day_int +\int_new:N \l__projlib_datetime_day_of_week_month_int +\int_new:N \l__projlib_datetime_day_of_week_year_int +\int_new:N \l__projlib_datetime_day_of_week_century_int +\int_new:N \l__projlib_datetime_day_of_week_result_int +\cs_new:Nn \__projlib_datetime_calculate_day_of_week_with_year_month_day:nnn + { + \int_set:Nn \l__projlib_datetime_day_of_week_day_int { #3 } + \int_compare:nNnTF { #2 } < { 3 } + { + \int_set:Nn \l__projlib_datetime_day_of_week_year_int { \int_eval:n { #1 - 1 } } + } + { + \int_set:Nn \l__projlib_datetime_day_of_week_year_int { #1 } + } + \int_set:Nn \l__projlib_datetime_day_of_week_century_int { \int_eval:n { \l__projlib_datetime_day_of_week_year_int / 100 } } + \int_set:Nn \l__projlib_datetime_day_of_week_year_int { \int_mod:nn { \l__projlib_datetime_day_of_week_year_int } { 100 } } + \int_set:Nn \l__projlib_datetime_day_of_week_month_int + { + \int_case:nnF { #2 } + { + { 1 } { 0 } + { 2 } { 3 } + { 3 } { 2 } + { 4 } { 5 } + { 5 } { 0 } + { 6 } { 3 } + { 7 } { 5 } + { 8 } { 1 } + { 9 } { 4 } + { 10 } { 6 } + { 11 } { 2 } + { 12 } { 4 } + } { 0 } + } + \int_set:Nn \l__projlib_datetime_day_of_week_result_int + { + \int_eval:n + { + \l__projlib_datetime_day_of_week_day_int + + \l__projlib_datetime_day_of_week_month_int + +\l__projlib_datetime_day_of_week_year_int + + \int_div_truncate:nn { \l__projlib_datetime_day_of_week_year_int } { 4 } + + \int_div_truncate:nn { \l__projlib_datetime_day_of_week_century_int } { 4 } + - 2 * \l__projlib_datetime_day_of_week_century_int + } + } + \int_set:Nn \l__projlib_datetime_day_of_week_result_int + { + \int_mod:nn { \l__projlib_datetime_day_of_week_result_int } { 7 } + } + \int_compare:nNnT { \l__projlib_datetime_day_of_week_result_int } < { 1 } + { + \int_set:Nn \l__projlib_datetime_day_of_week_result_int + { + \int_eval:n { \l__projlib_datetime_day_of_week_result_int + 7 } + } + } + } + + +\cs_new_protected:Nn \projlib_datetime_display_week:n + { + \__projlib_datetime_display_week_according_to_format:en { #1 } {} + } + +\cs_new_protected:Nn \projlib_datetime_display_week_uppercase:n + { + \__projlib_datetime_display_week_according_to_format:en { #1 } { _uppercase } + } + +\cs_new_protected:Nn \__projlib_datetime_display_week_according_to_format:nn + { + \projlib_datetime_calculate_week_according_to_format:n { #1 } + \cs_if_exist_use:c { projlib_datetime_display_week #2 _ \languagename :n } { \l__projlib_datetime_day_of_week_result_int } + } +\cs_generate_variant:Nn \__projlib_datetime_display_week_according_to_format:nn { en } + + +\cs_new_protected:Nn \projlib_datetime_calculate_week_according_to_format:n + { + \cs_if_exist_use:c { __projlib_datetime_date_parse_ \__projlib_datetime_input_format_to_str: :n } { #1 } + \__projlib_datetime_calculate_day_of_week_with_year_month_day:nnn + { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } + { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } + { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 3 } } } + } + + +% For each language, there are 7 groups of functions: +% 1) \projlib_datetime_display_year_month_day_<languagename>:nnn +% \projlib_datetime_display_year_month_day_uppercase_<languagename>:nnn +% 2) \projlib_datetime_display_year_month_<languagename>:nn +% \projlib_datetime_display_year_month_uppercase_<languagename>:nn +% 3) \projlib_datetime_display_month_day_<languagename>:nn +% \projlib_datetime_display_month_day_uppercase_<languagename>:nn +% 4) \projlib_datetime_display_year_<languagename>:n +% \projlib_datetime_display_year_uppercase_<languagename>:n +% 5) \projlib_datetime_display_month_<languagename>:n +% \projlib_datetime_display_month_uppercase_<languagename>:n +% 6) \projlib_datetime_display_day_<languagename>:n +% \projlib_datetime_display_day_uppercase_<languagename>:n +% 7) \projlib_datetime_display_week_<languagename>:n +% \projlib_datetime_display_week_uppercase_<languagename>:n + +\cs_new:Nn \projlib_datetime_display_year_month_day_english:nnn + { + \projlib_datetime_display_month_day_english:nn { #2 } { #3 } + ,\nobreakspace + \projlib_datetime_display_year_english:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_english:nnn { VVV, eee } + +\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_english:nnn + { + \projlib_datetime_display_month_day_uppercase_english:nn { #2 } { #3 } + ,\nobreakspace + \projlib_datetime_display_year_english:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_english:nnn { VVV, eee } + +\cs_new:Nn \projlib_datetime_display_year_month_english:nn + { + \projlib_datetime_display_month_english:n { #2 } + \nobreakspace + \projlib_datetime_display_year_english:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_english:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_year_month_uppercase_english:nn + { + \projlib_datetime_display_month_uppercase_english:n { #2 } + \nobreakspace + \projlib_datetime_display_year_english:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_english:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_month_day_english:nn + { + \projlib_datetime_display_month_english:n { #1 } + \nobreakspace + \projlib_datetime_display_day_english:n { #2 } + } +\cs_generate_variant:Nn \projlib_datetime_display_month_day_english:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_month_day_uppercase_english:nn + { + \projlib_datetime_display_month_uppercase_english:n { #1 } + \nobreakspace + \projlib_datetime_display_day_english:n { #2 } + } +\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_english:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_year_english:n { #1 } +\cs_new:Nn \projlib_datetime_display_year_uppercase_english:n { #1 } + +\cs_new:Nn \projlib_datetime_display_month_english:n + { + \int_case:nnF { #1 } + { + { 1 } { January } + { 2 } { February } + { 3 } { March } + { 4 } { April } + { 5 } { May } + { 6 } { June } + { 7 } { July } + { 8 } { August } + { 9 } { September } + { 10 } { October } + { 11 } { November } + { 12 } { December } + } { #1 } + } + +\cs_new:Nn \projlib_datetime_display_month_uppercase_english:n + { + \projlib_datetime_display_month_english:n { #1 } + } + +\cs_new:Nn \projlib_datetime_display_day_english:n { #1 } +\cs_new:Nn \projlib_datetime_display_day_uppercase_english:n { #1 } + +\cs_new:Nn \projlib_datetime_display_week_english:n + { + \int_case:nnF { #1 } + { + { 1 } { Monday } + { 2 } { Tuesday } + { 3 } { Wednesday } + { 4 } { Thursday } + { 5 } { Friday } + { 6 } { Saturday } + { 7 } { Sunday } + } { ??? } + } + +\cs_new:Nn \projlib_datetime_display_week_uppercase_english:n + { + \projlib_datetime_display_week_english:n { #1 } + } + + +\cs_new:Nn \projlib_datetime_display_year_month_day_french:nnn + { + \projlib_datetime_display_month_day_french:nn { #2 } { #3 } + \nobreakspace + \projlib_datetime_display_year_french:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_french:nnn { VVV, eee } + +\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_french:nnn + { + \projlib_datetime_display_month_day_uppercase_french:nn { #2 } { #3 } + \nobreakspace + \projlib_datetime_display_year_french:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_french:nnn { VVV, eee } + +\cs_new:Nn \projlib_datetime_display_year_month_french:nn + { + \projlib_datetime_display_month_french:n { #2 } + \nobreakspace + \projlib_datetime_display_year_french:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_french:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_year_month_uppercase_french:nn + { + \projlib_datetime_display_month_uppercase_french:n { #2 } + \nobreakspace + \projlib_datetime_display_year_french:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_french:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_month_day_french:nn + { + \projlib_datetime_display_day_french:n { #2 } + \nobreakspace + \projlib_datetime_display_month_french:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_month_day_french:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_month_day_uppercase_french:nn + { + \projlib_datetime_display_month_day_french:nn { #1 } { #2 } + } +\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_french:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_year_french:n { #1 } +\cs_new:Nn \projlib_datetime_display_year_uppercase_french:n { #1 } + +\cs_new:Nn \projlib_datetime_display_month_french:n + { + \int_case:nnF { #1 } + { + { 1 } { janvier } + { 2 } { février } + { 3 } { mars } + { 4 } { avril } + { 5 } { mai } + { 6 } { juin } + { 7 } { juillet } + { 8 } { août } + { 9 } { septembre } + { 10 } { octobre } + { 11 } { novembre } + { 12 } { décembre } + } { #1 } + } + +\cs_new:Nn \projlib_datetime_display_month_uppercase_french:n + { + \int_case:nnF { #1 } + { + { 1 } { Janvier } + { 2 } { Février } + { 3 } { Mars } + { 4 } { Avril } + { 5 } { Mai } + { 6 } { Juin } + { 7 } { Juillet } + { 8 } { Août } + { 9 } { Septembre } + { 10 } { Octobre } + { 11 } { Novembre } + { 12 } { Décembre } + } { #1 } + } + +\cs_new:Nn \projlib_datetime_display_day_french:n + { + \int_case:nnF { #1 } + { + { 1 } { 1 \projlib_datetime_text_superscript:n { er } } + } { #1 } + } + +\cs_new:Nn \projlib_datetime_display_day_uppercase_french:n + { + \int_case:nnF { #1 } + { + { 1 } { 1 \projlib_datetime_text_superscript:n { er } } + } { #1 } + } + +\cs_new:Nn \projlib_datetime_display_week_french:n + { + \int_case:nnF { #1 } + { + { 1 } { lundi } + { 2 } { mardi } + { 3 } { mercredi } + { 4 } { jeudi } + { 5 } { vendredi } + { 6 } { samedi } + { 7 } { dimanche } + } { ??? } + } + +\cs_new:Nn \projlib_datetime_display_week_uppercase_french:n + { + \int_case:nnF { #1 } + { + { 1 } { Lundi } + { 2 } { Mardi } + { 3 } { Mercredi } + { 4 } { Jeudi } + { 5 } { Vendredi } + { 6 } { Samedi } + { 7 } { Dimanche } + } { ??? } + } + + +\cs_new:Nn \projlib_datetime_display_year_month_day_ngerman:nnn + { + \projlib_datetime_display_month_day_ngerman:nn { #2 } { #3 } + \nobreakspace + \projlib_datetime_display_year_ngerman:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_ngerman:nnn { VVV, eee } + +\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_ngerman:nnn + { + \projlib_datetime_display_month_day_uppercase_ngerman:nn { #2 } { #3 } + \nobreakspace + \projlib_datetime_display_year_ngerman:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_ngerman:nnn { VVV, eee } + +\cs_new:Nn \projlib_datetime_display_year_month_ngerman:nn + { + \projlib_datetime_display_month_ngerman:n { #2 } + \nobreakspace + \projlib_datetime_display_year_ngerman:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_ngerman:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_year_month_uppercase_ngerman:nn + { + \projlib_datetime_display_month_uppercase_ngerman:n { #2 } + \nobreakspace + \projlib_datetime_display_year_ngerman:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_ngerman:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_month_day_ngerman:nn + { + \projlib_datetime_display_day_ngerman:n { #2 } + .\nobreakspace + \projlib_datetime_display_month_ngerman:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_month_day_ngerman:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_month_day_uppercase_ngerman:nn + { + \projlib_datetime_display_month_day_ngerman:nn { #1 } { #2 } + } +\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_ngerman:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_year_ngerman:n { #1 } +\cs_new:Nn \projlib_datetime_display_year_uppercase_ngerman:n { #1 } + +\cs_new:Nn \projlib_datetime_display_month_ngerman:n + { + \int_case:nnF { #1 } + { + { 1 } { Januar } + { 2 } { Februar } + { 3 } { März } + { 4 } { April } + { 5 } { Mai } + { 6 } { Juni } + { 7 } { Juli } + { 8 } { August } + { 9 } { September } + { 10 } { Oktober } + { 11 } { November } + { 12 } { Dezember } + } { #1 } + } + +\cs_new:Nn \projlib_datetime_display_month_uppercase_ngerman:n + { + \int_case:nnF { #1 } + { + { 1 } { Januar } + { 2 } { Februar } + { 3 } { März } + { 4 } { April } + { 5 } { Mai } + { 6 } { Juni } + { 7 } { Juli } + { 8 } { August } + { 9 } { September } + { 10 } { Oktober } + { 11 } { November } + { 12 } { Dezember } + } { #1 } + } + +\cs_new:Nn \projlib_datetime_display_day_ngerman:n { #1 } +\cs_new:Nn \projlib_datetime_display_day_uppercase_ngerman:n { #1 } + +\cs_new:Nn \projlib_datetime_display_week_ngerman:n + { + \int_case:nnF { #1 } + { + { 1 } { Montag } + { 2 } { Dienstag } + { 3 } { Mittwoch } + { 4 } { Donnerstag } + { 5 } { Freitag } + { 6 } { Samstag } + { 7 } { Sonntag } + } { ??? } + } + +\cs_new:Nn \projlib_datetime_display_week_uppercase_ngerman:n + { + \projlib_datetime_display_week_ngerman:n { #1 } + } + + +\cs_new:Nn \projlib_datetime_display_year_month_day_italian:nnn + { + \projlib_datetime_display_month_day_italian:nn { #2 } { #3 } + \nobreakspace + \projlib_datetime_display_year_italian:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_italian:nnn { VVV, eee } + +\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_italian:nnn + { + \projlib_datetime_display_month_day_uppercase_italian:nn { #2 } { #3 } + \nobreakspace + \projlib_datetime_display_year_italian:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_italian:nnn { VVV, eee } + +\cs_new:Nn \projlib_datetime_display_year_month_italian:nn + { + \projlib_datetime_display_month_italian:n { #2 } + \nobreakspace + \projlib_datetime_display_year_italian:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_italian:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_year_month_uppercase_italian:nn + { + \projlib_datetime_display_month_uppercase_italian:n { #2 } + \nobreakspace + \projlib_datetime_display_year_italian:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_italian:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_month_day_italian:nn + { + \projlib_datetime_display_day_italian:n { #2 } + \nobreakspace + \projlib_datetime_display_month_italian:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_month_day_italian:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_month_day_uppercase_italian:nn + { + \projlib_datetime_display_month_day_italian:nn { #1 } { #2 } + } +\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_italian:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_year_italian:n { #1 } +\cs_new:Nn \projlib_datetime_display_year_uppercase_italian:n { #1 } + +\cs_new:Nn \projlib_datetime_display_month_italian:n + { + \int_case:nnF { #1 } + { + { 1 } { gennaio } + { 2 } { febbraio } + { 3 } { marzo } + { 4 } { aprile } + { 5 } { maggio } + { 6 } { giugno } + { 7 } { luglio } + { 8 } { agosto } + { 9 } { settembre } + { 10 } { ottobre } + { 11 } { novembre } + { 12 } { dicembre } + } { #1 } + } + +\cs_new:Nn \projlib_datetime_display_month_uppercase_italian:n + { + \int_case:nnF { #1 } + { + { 1 } { Gennaio } + { 2 } { Febbraio } + { 3 } { Marzo } + { 4 } { Aprile } + { 5 } { Maggio } + { 6 } { Giugno } + { 7 } { Luglio } + { 8 } { Agosto } + { 9 } { Settembre } + { 10 } { Ottobre } + { 11 } { Novembre } + { 12 } { Dicembre } + } { #1 } + } + +\cs_new:Nn \projlib_datetime_display_day_italian:n { #1 } +\cs_new:Nn \projlib_datetime_display_day_uppercase_italian:n { #1 } + +\cs_new:Nn \projlib_datetime_display_week_italian:n + { + \int_case:nnF { #1 } + { + { 1 } { lunedì } + { 2 } { martedì } + { 3 } { mercoledì } + { 4 } { giovedì } + { 5 } { venerdì } + { 6 } { sabato } + { 7 } { domenica } + } { ??? } + } + +\cs_new:Nn \projlib_datetime_display_week_uppercase_italian:n + { + \int_case:nnF { #1 } + { + { 1 } { Lunedì } + { 2 } { Martedì } + { 3 } { Mercoledì } + { 4 } { Giovedì } + { 5 } { Venerdì } + { 6 } { Sabato } + { 7 } { Domenica } + } { ??? } + } + + +\cs_new:Nn \projlib_datetime_display_year_month_day_portuguese:nnn + { + \projlib_datetime_display_month_day_portuguese:nn { #2 } { #3 } + \nobreakspace de \nobreakspace + \projlib_datetime_display_year_portuguese:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_portuguese:nnn { VVV, eee } + +\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_portuguese:nnn + { + \projlib_datetime_display_month_day_uppercase_portuguese:nn { #2 } { #3 } + \nobreakspace de \nobreakspace + \projlib_datetime_display_year_portuguese:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_portuguese:nnn { VVV, eee } + +\cs_new:Nn \projlib_datetime_display_year_month_portuguese:nn + { + \projlib_datetime_display_month_portuguese:n { #2 } + \nobreakspace + \projlib_datetime_display_year_portuguese:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_portuguese:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_year_month_uppercase_portuguese:nn + { + \projlib_datetime_display_month_uppercase_portuguese:n { #2 } + \nobreakspace + \projlib_datetime_display_year_portuguese:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_portuguese:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_month_day_portuguese:nn + { + \projlib_datetime_display_day_portuguese:n { #2 } + \nobreakspace de \nobreakspace + \projlib_datetime_display_month_uppercase_portuguese:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_month_day_portuguese:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_month_day_uppercase_portuguese:nn + { + \projlib_datetime_display_month_day_portuguese:nn { #1 } { #2 } + } +\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_portuguese:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_year_portuguese:n { #1 } +\cs_new:Nn \projlib_datetime_display_year_uppercase_portuguese:n { #1 } + +\cs_new:Nn \projlib_datetime_display_month_portuguese:n + { + \int_case:nnF { #1 } + { + { 1 } { janeiro } + { 2 } { fevereiro } + { 3 } { março } + { 4 } { abril } + { 5 } { maio } + { 6 } { junho } + { 7 } { julho } + { 8 } { agosto } + { 9 } { setembro } + { 10 } { outubro } + { 11 } { novembro } + { 12 } { dezembro } + } { #1 } + } + +\cs_new:Nn \projlib_datetime_display_month_uppercase_portuguese:n + { + \int_case:nnF { #1 } + { + { 1 } { Janeiro } + { 2 } { Fevereiro } + { 3 } { Março } + { 4 } { Abril } + { 5 } { Maio } + { 6 } { Junho } + { 7 } { Julho } + { 8 } { Agosto } + { 9 } { Setembro } + { 10 } { Outubro } + { 11 } { Novembro } + { 12 } { Dezembro } + } { #1 } + } + +\cs_new:Nn \projlib_datetime_display_day_portuguese:n { #1 } +\cs_new:Nn \projlib_datetime_display_day_uppercase_portuguese:n { #1 } + +\cs_new:Nn \projlib_datetime_display_week_portuguese:n + { + \int_case:nnF { #1 } + { + { 1 } { segunda-feira } + { 2 } { terça-feira } + { 3 } { quarta-feira } + { 4 } { quinta-feira } + { 5 } { sexta-feira } + { 6 } { sábado } + { 7 } { domingo } + } { ??? } + } + +\cs_new:Nn \projlib_datetime_display_week_uppercase_portuguese:n + { + \int_case:nnF { #1 } + { + { 1 } { Segunda-feira } + { 2 } { Terça-feira } + { 3 } { Quarta-feira } + { 4 } { Quinta-feira } + { 5 } { Sexta-feira } + { 6 } { Sábado } + { 7 } { Domingo } + } { ??? } + } + + +\cs_new:Nn \projlib_datetime_display_year_month_day_brazilian:nnn + { + \projlib_datetime_display_month_day_brazilian:nn { #2 } { #3 } + \nobreakspace de \nobreakspace + \projlib_datetime_display_year_brazilian:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_brazilian:nnn { VVV, eee } + +\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_brazilian:nnn + { + \projlib_datetime_display_month_day_uppercase_brazilian:nn { #2 } { #3 } + \nobreakspace de \nobreakspace + \projlib_datetime_display_year_brazilian:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_brazilian:nnn { VVV, eee } + +\cs_new:Nn \projlib_datetime_display_year_month_brazilian:nn + { + \projlib_datetime_display_month_brazilian:n { #2 } + \nobreakspace + \projlib_datetime_display_year_brazilian:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_brazilian:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_year_month_uppercase_brazilian:nn + { + \projlib_datetime_display_month_uppercase_brazilian:n { #2 } + \nobreakspace + \projlib_datetime_display_year_brazilian:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_brazilian:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_month_day_brazilian:nn + { + \projlib_datetime_display_day_brazilian:n { #2 } + \nobreakspace de \nobreakspace + \projlib_datetime_display_month_uppercase_brazilian:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_month_day_brazilian:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_month_day_uppercase_brazilian:nn + { + \projlib_datetime_display_month_day_brazilian:nn { #1 } { #2 } + } +\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_brazilian:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_year_brazilian:n { #1 } +\cs_new:Nn \projlib_datetime_display_year_uppercase_brazilian:n { #1 } + +\cs_new:Nn \projlib_datetime_display_month_brazilian:n + { + \int_case:nnF { #1 } + { + { 1 } { janeiro } + { 2 } { fevereiro } + { 3 } { março } + { 4 } { abril } + { 5 } { maio } + { 6 } { junho } + { 7 } { julho } + { 8 } { agosto } + { 9 } { setembro } + { 10 } { outubro } + { 11 } { novembro } + { 12 } { dezembro } + } { #1 } + } + +\cs_new:Nn \projlib_datetime_display_month_uppercase_brazilian:n + { + \int_case:nnF { #1 } + { + { 1 } { Janeiro } + { 2 } { Fevereiro } + { 3 } { Março } + { 4 } { Abril } + { 5 } { Maio } + { 6 } { Junho } + { 7 } { Julho } + { 8 } { Agosto } + { 9 } { Setembro } + { 10 } { Outubro } + { 11 } { Novembro } + { 12 } { Dezembro } + } { #1 } + } + +\cs_new:Nn \projlib_datetime_display_day_brazilian:n { #1 } +\cs_new:Nn \projlib_datetime_display_day_uppercase_brazilian:n { #1 } + +\cs_new:Nn \projlib_datetime_display_week_brazilian:n + { + \int_case:nnF { #1 } + { + { 1 } { segunda-feira } + { 2 } { terça-feira } + { 3 } { quarta-feira } + { 4 } { quinta-feira } + { 5 } { sexta-feira } + { 6 } { sábado } + { 7 } { domingo } + } { ??? } + } + +\cs_new:Nn \projlib_datetime_display_week_uppercase_brazilian:n + { + \int_case:nnF { #1 } + { + { 1 } { Segunda-feira } + { 2 } { Terça-feira } + { 3 } { Quarta-feira } + { 4 } { Quinta-feira } + { 5 } { Sexta-feira } + { 6 } { Sábado } + { 7 } { Domingo } + } { ??? } + } + + +\cs_new:Nn \projlib_datetime_display_year_month_day_spanish:nnn + { + \projlib_datetime_display_month_day_spanish:nn { #2 } { #3 } + \nobreakspace de \nobreakspace + \projlib_datetime_display_year_spanish:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_spanish:nnn { VVV, eee } + +\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_spanish:nnn + { + \projlib_datetime_display_month_day_uppercase_spanish:nn { #2 } { #3 } + \nobreakspace de \nobreakspace + \projlib_datetime_display_year_spanish:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_spanish:nnn { VVV, eee } + +\cs_new:Nn \projlib_datetime_display_year_month_spanish:nn + { + \projlib_datetime_display_month_spanish:n { #2 } + \nobreakspace de \nobreakspace + \projlib_datetime_display_year_spanish:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_spanish:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_year_month_uppercase_spanish:nn + { + \projlib_datetime_display_month_uppercase_spanish:n { #2 } + \nobreakspace de \nobreakspace + \projlib_datetime_display_year_spanish:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_spanish:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_month_day_spanish:nn + { + \projlib_datetime_display_day_spanish:n { #2 } + \nobreakspace de \nobreakspace + \projlib_datetime_display_month_spanish:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_month_day_spanish:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_month_day_uppercase_spanish:nn + { + \projlib_datetime_display_month_day_spanish:nn { #1 } { #2 } + } +\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_spanish:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_year_spanish:n { #1 } +\cs_new:Nn \projlib_datetime_display_year_uppercase_spanish:n { #1 } + +\cs_new:Nn \projlib_datetime_display_month_spanish:n + { + \int_case:nnF { #1 } + { + { 1 } { enero } + { 2 } { febrero } + { 3 } { marzo } + { 4 } { abril } + { 5 } { mayo } + { 6 } { junio } + { 7 } { julio } + { 8 } { agosto } + { 9 } { septiembre } + { 10 } { octubre } + { 11 } { noviembre } + { 12 } { diciembre } + } { #1 } + } + +\cs_new:Nn \projlib_datetime_display_month_uppercase_spanish:n + { + \int_case:nnF { #1 } + { + { 1 } { Enero } + { 2 } { Febrero } + { 3 } { Marzo } + { 4 } { Abril } + { 5 } { Mayo } + { 6 } { Junio } + { 7 } { Julio } + { 8 } { Agosto } + { 9 } { Septiembre } + { 10 } { Octubre } + { 11 } { Noviembre } + { 12 } { Diciembre } + } { #1 } + } + +\cs_new:Nn \projlib_datetime_display_day_spanish:n { #1 } +\cs_new:Nn \projlib_datetime_display_day_uppercase_spanish:n { #1 } + +\cs_new:Nn \projlib_datetime_display_week_spanish:n + { + \int_case:nnF { #1 } + { + { 1 } { lunes } + { 2 } { martes } + { 3 } { miércoles } + { 4 } { jueves } + { 5 } { viernes } + { 6 } { sábado } + { 7 } { domingo } + } { ??? } + } + +\cs_new:Nn \projlib_datetime_display_week_uppercase_spanish:n + { + \int_case:nnF { #1 } + { + { 1 } { Lunes } + { 2 } { Martes } + { 3 } { Miércoles } + { 4 } { Jueves } + { 5 } { Viernes } + { 6 } { Sábado } + { 7 } { Domingo } + } { ??? } + } + + +\cs_new:Nn \projlib_datetime_display_year_month_day_schinese:nnn + { + #1 年 #2 月 #3 日 + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_schinese:nnn { VVV, eee } + +\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_schinese:nnn + { + #1 年 #2 月 #3 日 + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_schinese:nnn { VVV, eee } + +\cs_new:Nn \projlib_datetime_display_year_month_schinese:nn + { + #1 年 #2 月 + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_schinese:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_year_month_uppercase_schinese:nn + { + #1 年 #2 月 + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_schinese:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_month_day_schinese:nn + { + #1 月 #2 日 + } +\cs_generate_variant:Nn \projlib_datetime_display_month_day_schinese:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_month_day_uppercase_schinese:nn + { + #1 月 #2 日 + } +\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_schinese:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_year_schinese:n { #1 年 } +\cs_new:Nn \projlib_datetime_display_year_uppercase_schinese:n { #1 年 } +\cs_new:Nn \projlib_datetime_display_month_schinese:n { #1 月 } +\cs_new:Nn \projlib_datetime_display_month_uppercase_schinese:n { #1 月 } +\cs_new:Nn \projlib_datetime_display_day_schinese:n { #1 } +\cs_new:Nn \projlib_datetime_display_day_uppercase_schinese:n { #1 } + +\cs_new:Nn \projlib_datetime_display_week_schinese:n + { + \int_case:nnF { #1 } + { + { 1 } { 星期一 } + { 2 } { 星期二 } + { 3 } { 星期三 } + { 4 } { 星期四 } + { 5 } { 星期五 } + { 6 } { 星期六 } + { 7 } { 星期日 } + } { ??? } + } + +\cs_new:Nn \projlib_datetime_display_week_uppercase_schinese:n + { + \projlib_datetime_display_week_schinese:n { #1 } + } + + +\cs_new:Nn \projlib_datetime_display_year_month_day_tchinese:nnn + { + #1 年 #2 月 #3 日 + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_tchinese:nnn { VVV, eee } + +\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_tchinese:nnn + { + #1 年 #2 月 #3 日 + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_tchinese:nnn { VVV, eee } + +\cs_new:Nn \projlib_datetime_display_year_month_tchinese:nn + { + #1 年 #2 月 + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_tchinese:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_year_month_uppercase_tchinese:nn + { + #1 年 #2 月 + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_tchinese:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_month_day_tchinese:nn + { + #1 月 #2 日 + } +\cs_generate_variant:Nn \projlib_datetime_display_month_day_tchinese:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_month_day_uppercase_tchinese:nn + { + #1 月 #2 日 + } +\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_tchinese:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_year_tchinese:n { #1 年 } +\cs_new:Nn \projlib_datetime_display_year_uppercase_tchinese:n { #1 年 } +\cs_new:Nn \projlib_datetime_display_month_tchinese:n { #1 月 } +\cs_new:Nn \projlib_datetime_display_month_uppercase_tchinese:n { #1 月 } +\cs_new:Nn \projlib_datetime_display_day_tchinese:n { #1 } +\cs_new:Nn \projlib_datetime_display_day_uppercase_tchinese:n { #1 } + +\cs_new:Nn \projlib_datetime_display_week_tchinese:n + { + \int_case:nnF { #1 } + { + { 1 } { 星期一 } + { 2 } { 星期二 } + { 3 } { 星期三 } + { 4 } { 星期四 } + { 5 } { 星期五 } + { 6 } { 星期六 } + { 7 } { 星期日 } + } { ??? } + } + +\cs_new:Nn \projlib_datetime_display_week_uppercase_tchinese:n + { + \projlib_datetime_display_week_tchinese:n { #1 } + } + + +\cs_new:Nn \projlib_datetime_display_year_month_day_japanese:nnn + { + #1 年 #2 月 #3 日 + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_japanese:nnn { VVV, eee } + +\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_japanese:nnn + { + #1 年 #2 月 #3 日 + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_japanese:nnn { VVV, eee } + +\cs_new:Nn \projlib_datetime_display_year_month_japanese:nn + { + #1 年 #2 月 + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_japanese:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_year_month_uppercase_japanese:nn + { + #1 年 #2 月 + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_japanese:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_month_day_japanese:nn + { + #1 月 #2 日 + } +\cs_generate_variant:Nn \projlib_datetime_display_month_day_japanese:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_month_day_uppercase_japanese:nn + { + #1 月 #2 日 + } +\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_japanese:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_year_japanese:n { #1 年 } +\cs_new:Nn \projlib_datetime_display_year_uppercase_japanese:n { #1 年 } +\cs_new:Nn \projlib_datetime_display_month_japanese:n { #1 月 } +\cs_new:Nn \projlib_datetime_display_month_uppercase_japanese:n { #1 月 } +\cs_new:Nn \projlib_datetime_display_day_japanese:n { #1 } +\cs_new:Nn \projlib_datetime_display_day_uppercase_japanese:n { #1 } + +\cs_new:Nn \projlib_datetime_display_week_japanese:n + { + \int_case:nnF { #1 } + { + { 1 } { 月曜日 } + { 2 } { 火曜日 } + { 3 } { 水曜日 } + { 4 } { 木曜日 } + { 5 } { 金曜日 } + { 6 } { 土曜日 } + { 7 } { 日曜日 } + } { ??? } + } + +\cs_new:Nn \projlib_datetime_display_week_uppercase_japanese:n + { + \projlib_datetime_display_week_japanese:n { #1 } + } + + +\cs_new:Nn \projlib_datetime_display_year_month_day_russian:nnn + { + \projlib_datetime_display_month_day_russian:nn { #2 } { #3 } + \nobreakspace + \projlib_datetime_display_year_russian:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_russian:nnn { VVV, eee } + +\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_russian:nnn + { + \projlib_datetime_display_month_day_uppercase_russian:nn { #2 } { #3 } + \nobreakspace + \projlib_datetime_display_year_russian:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_russian:nnn { VVV, eee } + +\cs_new:Nn \projlib_datetime_display_year_month_russian:nn + { + \projlib_datetime_display_month_russian:n { #2 } + \nobreakspace + \projlib_datetime_display_year_russian:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_russian:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_year_month_uppercase_russian:nn + { + \projlib_datetime_display_month_uppercase_russian:n { #2 } + \nobreakspace + \projlib_datetime_display_year_russian:n { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_russian:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_month_day_russian:nn + { + \projlib_datetime_display_day_russian:n { #2 } + \nobreakspace + \int_case:nnF { #1 } + { + { 1 } { января } + { 2 } { февраля } + { 3 } { марта } + { 4 } { апреля } + { 5 } { мая } + { 6 } { июня } + { 7 } { июля } + { 8 } { августа } + { 9 } { сентября } + { 10 } { октября } + { 11 } { ноября } + { 12 } { декабря } + } { #1 } + } +\cs_generate_variant:Nn \projlib_datetime_display_month_day_russian:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_month_day_uppercase_russian:nn + { + \projlib_datetime_display_month_day_russian:nn { #1 } { #2 } + } +\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_russian:nn { VV, ee } + +\cs_new:Nn \projlib_datetime_display_year_russian:n { #1 ~ г. } +\cs_new:Nn \projlib_datetime_display_year_uppercase_russian:n { #1 ~ г. } + +\cs_new:Nn \projlib_datetime_display_month_russian:n + { + \int_case:nnF { #1 } + { + { 1 } { январь } + { 2 } { февраль } + { 3 } { март } + { 4 } { апрель } + { 5 } { май } + { 6 } { июнь } + { 7 } { июль } + { 8 } { август } + { 9 } { сентябрь } + { 10 } { октябрь } + { 11 } { ноябрь } + { 12 } { декабрь } + } { #1 } + } + +\cs_new:Nn \projlib_datetime_display_month_uppercase_russian:n + { + \int_case:nnF { #1 } + { + { 1 } { Январь } + { 2 } { Февраль } + { 3 } { Март } + { 4 } { Апрель } + { 5 } { Май } + { 6 } { Июнь } + { 7 } { Июль } + { 8 } { Август } + { 9 } { Сентябрь } + { 10 } { Октябрь } + { 11 } { Ноябрь } + { 12 } { Декабрь } + } { #1 } + } + +\cs_new:Nn \projlib_datetime_display_day_russian:n { #1 } +\cs_new:Nn \projlib_datetime_display_day_uppercase_russian:n { #1 } + +\cs_new:Nn \projlib_datetime_display_week_russian:n + { + \int_case:nnF { #1 } + { + { 1 } { понедельник } + { 2 } { вторник } + { 3 } { среда } + { 4 } { четверг } + { 5 } { пятница } + { 6 } { суббота } + { 7 } { воскресенье } + } { ??? } + } +\cs_new:Nn \projlib_datetime_display_week_uppercase_russian:n + { + \int_case:nnF { #1 } + { + { 1 } { Понедельник } + { 2 } { Вторник } + { 3 } { Среда } + { 4 } { Четверг } + { 5 } { Пятница } + { 6 } { Суббота } + { 7 } { Воскресенье } + } { ??? } + } + +\endinput +%% +%% End of file `projlib-datetime.sty'. |