La conversión de enumeración DayOfWeek a una cadena que representa el día
-
24-09-2019 - |
Pregunta
Me preguntaba si había una manera de convertir directamente los rendimientos número entero DayOfWeek
en una cadena que representa el día como lunes, martes, etc.
Código de ejemplo:
MessageBox.Show(Date.Today.DayOfWeek)
Esta 6
retorno voluntad (a fecha de hoy). ¿Hay una manera de convertir directamente en este Saturday
, por ejemplo? Realmente no importa lo que la convierte en muy, pero lo que quiero hacer con mi Select Case:
Select Case Date.Today.DayOfWeek
Case 0
day = "Sunday"
Case 1
day = "Monday"
Case 2
day = "Tuesday"
Case 3
day = "Wednesday"
Case 4
day = "Thursday"
Case 5
day = "Friday"
Case 6
day = "Saturday"
Case Else
day = "Apocalypse: we're all boned."
End Select
Gracias:)
Solución
Una forma más sencilla:
Dim day As String = Date.Today.DayOfWeek.ToString()
Otros consejos
DateTimeFormatInfo.CurrentInfo. GetDayName .
Hay un formato de Fecha y hora para que: dddd
Dim date1 As Date = #08/29/2008 7:27:15PM#
date1.ToString("dddd", CultureInfo.CreateSpecificCulture("en-US"))
Con el CultureInfo lo puede conseguir en un idioma específico (que es opcional)
Para más información: http://msdn.microsoft.com/en-us/library/ 8kb3ddd4.aspx # ddddSpecifier
DateTime.DayOfWeek
no devuelve un número entero - se vuelve una enumeración de tipo DayOfWeek
. Yo esperaría que para ser convertido en el nombre de forma automática, pero tal vez esto es una sutileza VB; tal vez algo que ver con el uso de Date
en lugar de DateTime
? Prueba esto:
MessageBox.Show(DateTime.Today.DayOfWeek.ToString())
Esto no va a ser sensible a la cultura sin embargo - que siempre apenas mostrar el nombre del valor de enumeración, en Inglés. Si eso no es bueno para usted, utilizar la solución Zyphrax o de itowlson.
Date.Today.DayOfWeek.ToString
le dará lo que estás buscando. Agradable y fácil.
Sólo en caso de que otros miraron a este ejemplo. Creo que debería ser la caja 0 para el domingo.
Case 0
day = "Sunday"