Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
.NET facilita la determinación del día ordinal de la semana para una fecha determinada y para mostrar el nombre del día de la semana localizado para una fecha determinada. Un valor enumerado que indica el día de la semana correspondiente a una fecha determinada está disponible en la propiedad DayOfWeek o DayOfWeek. En cambio, recuperar el nombre del día de la semana es una operación de formato que se puede realizar llamando a un método de formato, como el método ToString de un valor de fecha y hora o el método String.Format. En este artículo se muestra cómo realizar estas operaciones de formato.
Extraer un número que indica el día de la semana
Utilice el método estático DateTime.Parse o DateTimeOffset.Parse para convertir la representación de cadena de una fecha a un valor DateTime o DateTimeOffset.
Use la DateTime.DayOfWeek propiedad o DateTimeOffset.DayOfWeek para recuperar un DayOfWeek valor que indique el día de la semana.
Si es necesario, haga un 'casting' (en C#) o convierta (en Visual Basic) el valor DayOfWeek a un entero.
En el ejemplo siguiente se muestra un entero que representa el día de la semana de una fecha específica:
using System;
public class Example
{
public static void Main()
{
DateTime dateValue = new DateTime(2008, 6, 11);
Console.WriteLine((int) dateValue.DayOfWeek);
}
}
// The example displays the following output:
// 3
Module Example
Public Sub Main()
Dim dateValue As Date = #6/11/2008#
Console.WriteLine(dateValue.DayOfWeek)
End Sub
End Module
' The example displays the following output:
' 3
Extraiga el nombre abreviado del día de la semana.
Utilice el método estático DateTime.Parse o DateTimeOffset.Parse para convertir la representación de cadena de una fecha en un valor DateTime o DateTimeOffset.
Puede extraer el nombre abreviado del día de la semana de la cultura actual o de una cultura específica.
Para extraer el nombre abreviado del día de la semana para la cultura actual, llame al método de instancia DateTime.ToString(String) o DateTimeOffset.ToString(String) del valor de fecha y hora, y pase la cadena
dddcomo parámetroformat. En el ejemplo siguiente se muestra la llamada al ToString(String) método :using System; public class Example { public static void Main() { DateTime dateValue = new DateTime(2008, 6, 11); Console.WriteLine(dateValue.ToString("ddd")); } } // The example displays the following output: // WedModule Example Public Sub Main() Dim dateValue As Date = #6/11/2008# Console.WriteLine(dateValue.ToString("ddd")) End Sub End Module ' The example displays the following output: ' WedPara extraer el nombre abreviado del día de la semana para una referencia cultural específica, llame al método de instancia DateTime.ToString(String, IFormatProvider) o DateTimeOffset.ToString(String, IFormatProvider) del valor de fecha y hora. Pase la cadena
dddcomo parámetroformat. Pase como parámetroproviderun objeto CultureInfo o un objeto DateTimeFormatInfo que represente la referencia cultural cuyo nombre de día de la semana desea recuperar. En el código siguiente se muestra una llamada al ToString(String, IFormatProvider) método mediante un CultureInfo objeto que representa la referencia cultural de fr-FR:using System; using System.Globalization; public class Example { public static void Main() { DateTime dateValue = new DateTime(2008, 6, 11); Console.WriteLine(dateValue.ToString("ddd", new CultureInfo("fr-FR"))); } } // The example displays the following output: // mer.Imports System.Globalization Module Example Public Sub Main() Dim dateValue As Date = #6/11/2008# Console.WriteLine(dateValue.ToString("ddd", New CultureInfo("fr-FR"))) End Sub End Module ' The example displays the following output: ' mer.
Extraer el nombre completo del día de la semana
Utilice el método estático DateTime.Parse o DateTimeOffset.Parse para convertir la representación de cadena de una fecha en un valor DateTime o DateTimeOffset.
Puede extraer el nombre completo del día de la semana de la referencia cultural actual o de una referencia cultural específica:
Para extraer el nombre del día de la semana para la referencia cultural actual, llame al método de instancia DateTime.ToString(String) o DateTimeOffset.ToString(String) del valor de fecha y hora, y pase la cadena
ddddcomo parámetroformat. En el ejemplo siguiente se muestra la llamada al ToString(String) método :using System; public class Example { public static void Main() { DateTime dateValue = new DateTime(2008, 6, 11); Console.WriteLine(dateValue.ToString("dddd")); } } // The example displays the following output: // WednesdayModule Example Public Sub Main() Dim dateValue As Date = #6/11/2008# Console.WriteLine(dateValue.ToString("dddd")) End Sub End Module ' The example displays the following output: ' WednesdayPara extraer el nombre del día de la semana para una cultura específica, llame al método de instancia DateTime.ToString(String, IFormatProvider) o DateTimeOffset.ToString(String, IFormatProvider) del valor de fecha y hora. Pase la cadena
ddddcomo parámetroformat. Pase un objeto CultureInfo o DateTimeFormatInfo que represente la referencia cultural cuyo nombre de día de la semana desea recuperar como el parámetroprovider. En el siguiente código se ilustra una llamada al método ToString(String, IFormatProvider) usando un objeto CultureInfo que representa la cultura es-ES.using System; using System.Globalization; public class Example { public static void Main() { DateTime dateValue = new DateTime(2008, 6, 11); Console.WriteLine(dateValue.ToString("dddd", new CultureInfo("es-ES"))); } } // The example displays the following output: // miércoles.Imports System.Globalization Module Example Public Sub Main() Dim dateValue As Date = #6/11/2008# Console.WriteLine(dateValue.ToString("dddd", _ New CultureInfo("es-ES"))) End Sub End Module ' The example displays the following output: ' miércoles.
Ejemplo
En el ejemplo siguiente se muestran las llamadas a las DateTime.DayOfWeek propiedades y DateTimeOffset.DayOfWeek para recuperar el número que representa el día de la semana para una fecha determinada. También incluye llamadas a los métodos DateTime.ToString y DateTimeOffset.ToString para extraer el nombre abreviado del día de la semana y el nombre completo del día de la semana.
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
string dateString = "6/11/2007";
DateTime dateValue;
DateTimeOffset dateOffsetValue;
try
{
DateTimeFormatInfo dateTimeFormats;
// Convert date representation to a date value
dateValue = DateTime.Parse(dateString, CultureInfo.InvariantCulture);
dateOffsetValue = new DateTimeOffset(dateValue,
TimeZoneInfo.Local.GetUtcOffset(dateValue));
// Convert date representation to a number indicating the day of week
Console.WriteLine((int) dateValue.DayOfWeek);
Console.WriteLine((int) dateOffsetValue.DayOfWeek);
// Display abbreviated weekday name using current culture
Console.WriteLine(dateValue.ToString("ddd"));
Console.WriteLine(dateOffsetValue.ToString("ddd"));
// Display full weekday name using current culture
Console.WriteLine(dateValue.ToString("dddd"));
Console.WriteLine(dateOffsetValue.ToString("dddd"));
// Display abbreviated weekday name for de-DE culture
Console.WriteLine(dateValue.ToString("ddd", new CultureInfo("de-DE")));
Console.WriteLine(dateOffsetValue.ToString("ddd",
new CultureInfo("de-DE")));
// Display abbreviated weekday name with de-DE DateTimeFormatInfo object
dateTimeFormats = new CultureInfo("de-DE").DateTimeFormat;
Console.WriteLine(dateValue.ToString("ddd", dateTimeFormats));
Console.WriteLine(dateOffsetValue.ToString("ddd", dateTimeFormats));
// Display full weekday name for fr-FR culture
Console.WriteLine(dateValue.ToString("ddd", new CultureInfo("fr-FR")));
Console.WriteLine(dateOffsetValue.ToString("ddd",
new CultureInfo("fr-FR")));
// Display abbreviated weekday name with fr-FR DateTimeFormatInfo object
dateTimeFormats = new CultureInfo("fr-FR").DateTimeFormat;
Console.WriteLine(dateValue.ToString("dddd", dateTimeFormats));
Console.WriteLine(dateOffsetValue.ToString("dddd", dateTimeFormats));
}
catch (FormatException)
{
Console.WriteLine($"Unable to convert {dateString} to a date.");
}
}
}
// The example displays the following output:
// 1
// 1
// Mon
// Mon
// Monday
// Monday
// Mo
// Mo
// Mo
// Mo
// lun.
// lun.
// lundi
// lundi
Imports System.Globalization
Module Example
Public Sub Main()
Dim dateString As String = "6/11/2007"
Dim dateValue As Date
Dim dateOffsetValue As DateTimeOffset
Try
Dim dateTimeFormats As DateTimeFormatInfo
' Convert date representation to a date value
dateValue = Date.Parse(dateString, CultureInfo.InvariantCulture)
dateOffsetValue = New DateTimeOffset(dateValue, _
TimeZoneInfo.Local.GetUtcOffset(dateValue))
' Convert date representation to a number indicating the day of week
Console.WriteLine(dateValue.DayOfWeek)
Console.WriteLine(dateOffsetValue.DayOfWeek)
' Display abbreviated weekday name using current culture
Console.WriteLine(dateValue.ToString("ddd"))
Console.WriteLine(dateOffsetValue.ToString("ddd"))
' Display full weekday name using current culture
Console.WriteLine(dateValue.ToString("dddd"))
Console.WriteLine(dateOffsetValue.ToString("dddd"))
' Display abbreviated weekday name for de-DE culture
Console.WriteLine(dateValue.ToString("ddd", New CultureInfo("de-DE")))
Console.WriteLine(dateOffsetValue.ToString("ddd", _
New CultureInfo("de-DE")))
' Display abbreviated weekday name with de-DE DateTimeFormatInfo object
dateTimeFormats = New CultureInfo("de-DE").DateTimeFormat
Console.WriteLine(dateValue.ToString("ddd", dateTimeFormats))
Console.WriteLine(dateOffsetValue.ToString("ddd", dateTimeFormats))
' Display full weekday name for fr-FR culture
Console.WriteLine(dateValue.ToString("ddd", New CultureInfo("fr-FR")))
Console.WriteLine(dateOffsetValue.ToString("ddd", _
New CultureInfo("fr-FR")))
' Display abbreviated weekday name with fr-FR DateTimeFormatInfo object
dateTimeFormats = New CultureInfo("fr-FR").DateTimeFormat
Console.WriteLine(dateValue.ToString("dddd", dateTimeFormats))
Console.WriteLine(dateOffsetValue.ToString("dddd", dateTimeFormats))
Catch e As FormatException
Console.WriteLine("Unable to convert {0} to a date.", dateString)
End Try
End Sub
End Module
' The example displays the following output to the console:
' 1
' 1
' Mon
' Mon
' Monday
' Monday
' Mo
' Mo
' Mo
' Mo
' lun.
' lun.
' lundi
' lundi
Los lenguajes individuales pueden proporcionar funcionalidad que duplica o complementa la funcionalidad proporcionada por .NET. Por ejemplo, Visual Basic incluye dos funciones de este tipo:
Weekday, que devuelve un número que indica el día de la semana de una fecha determinada. Considera que el valor ordinal del primer día de la semana es uno, mientras que la DateTime.DayOfWeek propiedad considera que es cero.WeekdayName, que devuelve el nombre del día de la semana en la cultura actual que corresponde a un número específico de día de la semana.
En el ejemplo siguiente se muestra el uso de las funciones Weekday Visual Basic WeekdayName.
Imports System.Globalization
Imports System.Threading
Module Example
Public Sub Main()
Dim dateValue As Date = #6/11/2008#
' Get weekday number using Visual Basic Weekday function
Console.WriteLine(Weekday(dateValue)) ' Displays 4
' Compare with .NET DateTime.DayOfWeek property
Console.WriteLine(dateValue.DayOfWeek) ' Displays 3
' Get weekday name using Weekday and WeekdayName functions
Console.WriteLine(WeekdayName(Weekday(dateValue))) ' Displays Wednesday
' Change culture to de-DE
Dim originalCulture As CultureInfo = Thread.CurrentThread.CurrentCulture
Thread.CurrentThread.CurrentCulture = New CultureInfo("de-DE")
' Get weekday name using Weekday and WeekdayName functions
Console.WriteLine(WeekdayName(Weekday(dateValue))) ' Displays Donnerstag
' Restore original culture
Thread.CurrentThread.CurrentCulture = originalCulture
End Sub
End Module
También puede usar el valor devuelto por la DateTime.DayOfWeek propiedad para recuperar el nombre del día de la semana de una fecha determinada. Este proceso solo requiere una llamada al método ToString en el valor DayOfWeek devuelto por la propiedad. Sin embargo, esta técnica no genera un nombre de día de la semana localizado para la referencia cultural actual, como se muestra en el ejemplo siguiente:
using System;
using System.Globalization;
using System.Threading;
public class Example
{
public static void Main()
{
// Change current culture to fr-FR
CultureInfo originalCulture = Thread.CurrentThread.CurrentCulture;
Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR");
DateTime dateValue = new DateTime(2008, 6, 11);
// Display the DayOfWeek string representation
Console.WriteLine(dateValue.DayOfWeek.ToString());
// Restore original current culture
Thread.CurrentThread.CurrentCulture = originalCulture;
}
}
// The example displays the following output:
// Wednesday
Imports System.Globalization
Imports System.Threading
Module Example
Public Sub Main()
' Change current culture to fr-FR
Dim originalCulture As CultureInfo = Thread.CurrentThread.CurrentCulture
Thread.CurrentThread.CurrentCulture = New CultureInfo("fr-FR")
Dim dateValue As Date = #6/11/2008#
' Display the DayOfWeek string representation
Console.WriteLine(dateValue.DayOfWeek.ToString())
' Restore original current culture
Thread.CurrentThread.CurrentCulture = originalCulture
End Sub
End Module
' The example displays the following output:
' Wednesday