一种不那么丑陋的方式来本地化 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”可以以一种不需要遍历的方式来实现。这是对还是错?