一种不那么丑陋的方式来本地化 DayOfWeek? [复制]

Posted

技术标签:

【中文标题】一种不那么丑陋的方式来本地化 DayOfWeek? [复制]【英文标题】:A less ugly way to localize DayOfWeek? [duplicate] 【发布时间】:2011-05-02 23:38:44 【问题描述】:
using System;

namespace Server.Custom.Extensions

    public static class FriendlyExtensions
    
        public static string Friendly(this DayOfWeek day)
        
            if (day == DateTime.Now.DayOfWeek)
                return "Hoy";

            int dayOfWeek = (int)DateTime.Now.DayOfWeek;
            int dayOfEvent = (int)day;

            if (dayOfWeek + 1 == dayOfEvent || (dayOfWeek == 6 && dayOfEvent == 0))
                return "Mañana";

            switch (day)
            
                default:
                case DayOfWeek.Monday: return "Lunes";
                case DayOfWeek.Tuesday: return "Martes";
                case DayOfWeek.Wednesday: return "Miercoles";
                case DayOfWeek.Thursday: return "Jueves";
                case DayOfWeek.Friday: return "Viernes";
                case DayOfWeek.Saturday: return "Sabado";
                case DayOfWeek.Sunday: return "Domingo";
            
        
    

有什么方法可以用 Cultures 本地化它吗?如何? :( 顺便说一句,我也希望它说“今天”或“明天”,而不仅仅是转换日期

【问题讨论】:

你能找到一个可以完成这项工作的 l10n 库吗? 您在获取日期名称方面得到了很好的答案。 “今天”和“明天”没有内置翻译。 @Nico 你为什么接受 FerranB 的回答?它与问题无关。 【参考方案1】:
DateTime.Now.ToString("ddd", new CultureInfo("es-ES"));

DateTime.Now.ToString("dddd", new CultureInfo("es-ES"));

参考资料:

DateTime.ToString Method (String) How to: Extract the Day of the Week from a Specific Date

【讨论】:

-1 这如何回答这个问题?【参考方案2】:

来自here(见底部)的这段代码可能会让您走上正轨。

 CultureInfo german = new CultureInfo("de-DE");
 DateTimeFormatInfo dtfi = german.DateTimeFormat;

 Console.WriteLine("Days of the week for the 0 culture:",
                    german.Name);
 for (int ctr = 0; ctr < dtfi.DayNames.Length; ctr++)
    Console.WriteLine("   0,-121", dtfi.DayNames[ctr],
                      dtfi.DayNames[ctr] == dtfi.DayNames[(int)dtfi.FirstDayOfWeek] ? 
                            "(First Day of Week)" : "");  

【讨论】:

以上是关于一种不那么丑陋的方式来本地化 DayOfWeek? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如果我们使用链表数组来实现哈希表,那么“add”可以以一种不需要遍历的方式来实现。这是对还是错?

比较文件版本是不是有一种不那么复杂的方法?

sh 一种简单而丑陋的方式来启动和停止进程 - 1. proc start script

策略模式:助你消除丑陋的 if else 多分支代码

一种不太合规的PreparedStatement使用方式

如何从两个DayOfWeeks之间获取DayOfWeek列表