Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
.NET gör det enkelt att fastställa ordningsdagen i veckan för ett specifikt datum och att visa det lokaliserade namnet på veckodagen för detta datum. Ett uppräknat värde som anger den veckodag som motsvarar ett visst datum är tillgängligt från egenskapen DayOfWeek eller DayOfWeek. Att hämta veckodagsnamnet är däremot en formateringsåtgärd som kan utföras genom att anropa en formateringsmetod, till exempel ett datum- och tidsvärdes ToString
-metod eller metoden String.Format. Den här artikeln visar hur du utför dessa formateringsåtgärder.
Extrahera ett tal som anger veckodagen
Använd metoden static DateTime.Parse eller DateTimeOffset.Parse för att konvertera strängrepresentationen av ett datum till ett DateTime eller ett DateTimeOffset värde.
Använd egenskapen DateTime.DayOfWeek eller DateTimeOffset.DayOfWeek för att hämta ett DayOfWeek värde som anger veckodagen.
Om det behövs omvandlar du (i C#) eller konverterar (i Visual Basic) värdet DayOfWeek till ett heltal.
I följande exempel visas ett heltal som representerar veckodagen för ett visst datum:
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
Extrahera det förkortade veckodagsnamnet
Använd metoden static DateTime.Parse eller DateTimeOffset.Parse för att konvertera strängrepresentationen av ett datum till ett DateTime eller ett DateTimeOffset värde.
Du kan extrahera det förkortade veckodagsnamnet för den aktuella kulturen eller en specifik kultur:
Om du vill extrahera det förkortade veckodagsnamnet för den aktuella kulturen anropar du datum- och tidsvärdets DateTime.ToString(String)- eller DateTimeOffset.ToString(String)-instansmetod och skickar strängen
ddd
somformat
parameter. I följande exempel visas anropet till metoden ToString(String):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: // Wed
Module 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: ' Wed
Om du vill extrahera det förkortade veckodagsnamnet för en viss kultur anropar du datum- och tidsvärdets DateTime.ToString(String, IFormatProvider)- eller DateTimeOffset.ToString(String, IFormatProvider) instansmetod. Skicka strängen
ddd
som parameternformat
. Skicka antingen ett CultureInfo eller ett DateTimeFormatInfo objekt som representerar den kultur vars veckodagnamn du vill hämta, som enprovider
parameter. Följande kod illustrerar ett anrop till metoden ToString(String, IFormatProvider) med hjälp av ett CultureInfo objekt som representerar fr-FR kultur: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.
Extrahera det fullständiga veckodagsnamnet
Använd metoden static DateTime.Parse eller DateTimeOffset.Parse för att konvertera strängrepresentationen av ett datum till ett DateTime eller ett DateTimeOffset värde.
Du kan extrahera det fullständiga veckodagsnamnet för den aktuella kulturen eller en specifik kultur:
Om du vill extrahera veckodagsnamnet för den aktuella kulturen anropar du datum- och tidsvärdets DateTime.ToString(String)- eller DateTimeOffset.ToString(String)-instansmetod och skickar strängen
dddd
som parameternformat
. I följande exempel visas anropet till metoden ToString(String):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: // Wednesday
Module 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: ' Wednesday
Om du vill extrahera veckodagsnamnet för en specifik kultur anropar du datum- och tidsvärdets DateTime.ToString(String, IFormatProvider)- eller DateTimeOffset.ToString(String, IFormatProvider)-instansmetod. Skicka strängen
dddd
som parameternformat
. Skicka antingen ett CultureInfo- eller ett DateTimeFormatInfo-objekt som representerar den kultur vars veckodagens namn du vill hämta, som parameterprovider
. Följande kod illustrerar ett anrop till metoden ToString(String, IFormatProvider) med hjälp av ett CultureInfo objekt som representerar es-ES kultur: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.
Exempel
I följande exempel visas anrop till egenskaperna DateTime.DayOfWeek och DateTimeOffset.DayOfWeek för att hämta numret som representerar veckodagen för ett visst datum. Den innehåller även anrop till metoderna DateTime.ToString och DateTimeOffset.ToString för att extrahera det förkortade veckodagsnamnet och det fullständiga veckodagsnamnet.
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
Enskilda språk kan ge funktioner som duplicerar eller kompletterar de funktioner som tillhandahålls av .NET. Visual Basic innehåller till exempel två sådana funktioner:
Weekday
, som returnerar ett tal som anger veckodagen för ett visst datum. Man anser att ordningsvärdet för den första dagen i veckan är ett, medan egenskapen DateTime.DayOfWeek betraktar det som noll.WeekdayName
, som returnerar namnet på veckan i den aktuella kulturen som motsvarar ett visst veckodagsnummer.
I följande exempel visas hur funktionerna Visual Basic Weekday
och WeekdayName
används:
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
Du kan också använda värdet som returneras av egenskapen DateTime.DayOfWeek för att hämta veckodagsnamnet för ett visst datum. Den här processen kräver endast ett anrop till ToString-metoden på det DayOfWeek-värde som returneras av egenskapen. Den här tekniken genererar dock inte ett lokaliserat veckodagsnamn för den aktuella kulturen, vilket visas i följande exempel:
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