Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C语言的不同文化中,如何确定一周的开始是星期一还是星期天_C#_.net - Fatal编程技术网

C# 在C语言的不同文化中,如何确定一周的开始是星期一还是星期天

C# 在C语言的不同文化中,如何确定一周的开始是星期一还是星期天,c#,.net,C#,.net,有些国家把星期一作为一周的第一天,有些国家把星期天作为第一天。 在C/.Net中,图书馆全球化可以确定不同国家当前打开的网页,但我没有找到任何有用的方法来确定哪个国家使用哪一天作为一周的开始。您可以使用区域性的DateTimeFormatInfo var info = new System.Globalization.CultureInfo("de-DE"); info.DateTimeFormat.FirstDayOfWeek; 使用这个全球化的时间格式 var firstDayOfWee

有些国家把星期一作为一周的第一天,有些国家把星期天作为第一天。 在C/.Net中,图书馆全球化可以确定不同国家当前打开的网页,但我没有找到任何有用的方法来确定哪个国家使用哪一天作为一周的开始。

您可以使用区域性的DateTimeFormatInfo

var info = new System.Globalization.CultureInfo("de-DE");
info.DateTimeFormat.FirstDayOfWeek;

使用这个全球化的时间格式

 var firstDayOfWeek = CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek;

如果我没弄错的话,您希望从国家代码(如RU、FR、DE等)获取一周中的第一天,而不是从CultureInfo获取,这是显而易见的:

  // Russian culture, Russia
  CultureInfo ci = new CultureInfo("ru-RU");

  var firstDayOfWeek = ci.DateTimeFormat.FirstDayOfWeek;

  // Monday
  Console.Write(firstDayOfWeek);
仅对于国家代码而言,这是一项更困难的任务:

  // Just Russia given as ISO 2 letters country code
  String CountryCode = "RU";

  var days = CultureInfo.GetCultures(CultureTypes.SpecificCultures)
    .Where(item => item.LCID != 4096) // Cultures without region
    .Where(item => String.Equals(new RegionInfo(item.LCID).Name, 
                                 CountryCode,
                                 StringComparison.OrdinalIgnoreCase))
    .Select(item => item.DateTimeFormat.FirstDayOfWeek)
    .Distinct()
    .ToArray();

  if (days.Length <= 0)
    Console.Write("No such regions found, use default (Sunday?)");
  else if (days.Length == 1)
    Console.Write(days[0]); // <- this will return "Monday"
  else
    Console.Write("Too many variants: " + String.Join(", ", days)); 

呃,var result=CultureInfo.DefaultThreadCurrentCulture.DateTimeFormat.FirstDayOfWeek;或者类似的情况?您想知道用户在浏览器中打开页面的第一天吗?它是ASP.NET应用程序吗?你已经有了文化,或者你需要确定它?不清楚你的问题是什么:你的问题是获得某一文化的第一天吗?或者您在确定用户的文化方面有问题吗?我不知道国家代码,只需使用CultureInfo.CurrentCulture获取文化