如何根據我選擇的日歷找出與給定月份相關的未來月份?
這意味著我選擇了公歷并且給定的月份是 9 月,將出現以下月份的串列:
[九月、十月、十一月、十二月]
如果選擇回歷并且當前月份是:Dhu al-Qa'dah,將出現剩余月份的串列,它們是:
[Dhul Qi'dah, Dhul Hijjah]
我使用以下參考來制作代碼,但沒有用
System.Globalization.CultureInfo(DateLangCulture, false).DateTimeFormat
uj5u.com熱心網友回復:
在 .NET Framework 中,月份名稱基于文化。如果我清楚地理解你的問題,你想選擇一些“日歷”并列出它的幾個月。我認為這種方法存在問題,因為不同的文化可能使用相同的日歷,而這些不同的文化可能有不同的月份名稱。
例如,讓我們
您可以獲得當前月份的數字;
var currentMonthNo = Datetime.Now.Month;
然后您可以開始從它的前一個索引(因為陣列開始索引為 0)到陣列的末尾(請注意,有些日歷有 13 個月,這就是為什么對于 12 個月的文化,陣列的第 13 個元素是空字串。)
uj5u.com熱心網友回復:
僅補充 Soner G?nül 的回答。
如果想根據當前系統日歷獲取公歷月份,可以參考如下代碼:
namespace ConsoleApp1 {
internal class Program {
static void Main (string[] args) {
//CultureInfo culture = CultureInfo.GetCultureInfo("en-US");
//CultureInfo culture = CultureInfo.GetCultureInfo("ar-SA");
CultureInfo culture = CultureInfo.GetCultureInfo("fr");
List<KeyValuePair<int,string>> months = new List<KeyValuePair<int,string>>();
for (int i = getCurMonth(); i <= 12; i )
{
months.Add(new KeyValuePair<int, string>(i, DateTime.Parse(DateTime.Now.Year.ToString() "-" i "-1").ToString("MMMM", culture)));
}
foreach (KeyValuePair<int, string> month in months)
{
Console.WriteLine(month.Value);
}
Console.ReadLine();
}
static int getCurMonth () {
return DateTime.Now.Month;
}
}
}
要獲取特定的國家日歷,系統必須安裝相應的字符集。
您可以看到以下示例:
en-us
CultureInfo culture = CultureInfo.GetCultureInfo("en-US");
輸出:

fr
CultureInfo culture = CultureInfo.GetCultureInfo("fr")
輸出:

如果您對我的代碼有任何疑問,請在下面發表評論。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/394784.html
上一篇:遞減日期月份轉換
下一篇:處理微秒
