2011-05-02 10 views
4
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"; 
      } 
     } 
    } 
} 

Y a-t-il un moyen de localiser cela avec Cultures? Comment? :( Par la façon dont je veux dire "Aujourd'hui" ou "Tomomorrow", pas seulement de convertir les joursUne manière moins laide de localiser DayOfWeek?

+0

Pouvez-vous trouver une bibliothèque l10n qui fait le travail? – Ethan

+0

Je ne sais pas ce que c'est – bevacqua

+0

Vous avez de bonnes réponses pour obtenir les noms des jours. Il n'y a pas de traduction intégrée pour "aujourd'hui" et "demain". –

Répondre

4

Ce code de here (voir en bas) pourrait vous mettre sur la bonne voie.

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,-12}{1}", dtfi.DayNames[ctr], 
         dtfi.DayNames[ctr] == dtfi.DayNames[(int)dtfi.FirstDayOfWeek] ? 
          "(First Day of Week)" : ""); 
Questions connexes