Je veux convertir la date en anglais dans Vb.net.
Par exemple: 26 mai 2008 à Vingt-sixième mai 2008Comment convertir la date en mots?
Quelle sera la meilleure approche, existe-t-il une fonction dans le type de données date/heure?
Je veux convertir la date en anglais dans Vb.net.
Par exemple: 26 mai 2008 à Vingt-sixième mai 2008Comment convertir la date en mots?
Quelle sera la meilleure approche, existe-t-il une fonction dans le type de données date/heure?
Ce probablement la meilleure approche: -
private static string[] dayText = new string[]
{"First", "Second", "Third", "Fourth", "Fifth", "Sixth", "Seventh", "Eighth",
"Nineth", "Tenth", "Eleventh", "Twelveth", "Thirteenth", "Fourteenth", "Fifteenth",
"Sixteenth", "Seventeenth", "Eighteenth", "Nineteenth", "Twentieth", "Twenty first",
"Twenty second", "Twenty third", "Twenty fourth", "Twenty fifth", "Twenty sixth",
"Twenty seventh", "Twenty eighth", "Twenty nineth", "Thirtieth", "Thirty first"};
public static string DayInWords(int day)
{
//assertion code here
return dayText[day-1];
}
...
string result = DayInWords(myDate.Day) + myDate.ToString(" MMM yyyy");
Je ne connais aucune fonction intégrée. Mais il n'y a que 31 jours à considérer. Il serait assez facile de construire une fonction qui remplaçait manuellement 1 à 31 par des mots. Puis ajouter le mois et l'année, comme dans:
Function foobar(ByVal mydate As Date) As String
Dim result As String = ""
Select Case mydate.Day
Case 1
result = "First"
Case 2
result = "Second"
Case 3
result = "Third"
... etc ...
Case 31
result = "Thirty-First"
End Select
Return result & " " & mydate.ToString("MMMM yyyy")
End Function
En effet compte tenu de la faible quantité de nombres possibles, les hardcoding est probablement le plus facile soultion. Mais si vous ne voulez pas faire cela, jetez un oeil à ces ressources:
http://xl.barasch.com/cCo11432.htm
http://www.vb-helper.com/howto_net_number_to_words2.html