使用DateTime的c#中的月份
本文关键字:DateTime 使用 | 更新日期: 2023-09-27 18:20:54
我想知道是否有办法让用户输入一个像01这样的数字,并使用dateTime将该字符串转换为月份。我知道如何让用户输入诸如01/01/2011之类的字符串,并将其转换为DateTime。有没有一种方法可以使用datetime将两个数字的字符串转换为一个月。像这样的东西,但那会工作
Console.WriteLine("Please the month numerically");
string date = Console.ReadLine();
dt = Convert.ToDateTime(date).Month;
然而,使用DateTime,您可能会让它跳过一些障碍;
CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(int monthNumber);
可能更容易。
它已经内置在.NET框架中:请参阅System.Globalization.DateTimeFormatInfo.MonthNames
只拥有一个由12个元素组成的数组会更容易,每个元素都是一个月。
String[] Months = new String[] {"Jan", "Feb"}; //put all months in
Console.WriteLine("Please the month numerically");
string date = Console.ReadLine();
int index = 0;
if (!int.TryParse(date, out index)) {
// handle error for input not being an int
}
dt = Months[index];
如果你真的想坚持使用DateTime类,你可以输入月份,然后标记某一天和某一年,并使用你在代码中提供的方法。例如
dt = Convert.ToDateTime(date + "/01/2012").Month;
但这不太明智。
您的示例不完整,因为您需要指定日期中的哪个year
和哪个day
。
假设数据必须是当前日期的,您可以这样做:
DateTime dt = new DateTime(DateTime.Now.Year, int.Parse("01"), DateTime.Now.Day);
很明显,别忘了添加一些控件,比如
- 月份范围{1-12}
- 月份字符串是一个数字
编辑
int month =-1;
if(int.TryParse(userInputString, out month)){
if(month>=1 && month <=12) {
DateTime dt = new DateTime(
DateTime.Now.Year,
month,
DateTime.Now.Day);
}
}
希望这能有所帮助。
public static string ReturnMonthName(string pMonth)
{
switch (pMonth)
{
case "01" :
return "January";
case "02":
return "February";
case "03":
return "March";
case "04":
return "April";
case "05":
return "May";
case "06":
return "June";
case "07":
return "July";
case "08":
return "August";
case "09":
return "September";
case "10":
return "October";
case "11":
return "November";
case "12":
return "December";
default:
return "Invalid month";
}
从日期时间中提取月份,并使用开关/大小写选择来分配变量。
switch (val)
{
case 1:
MessageBox.Show("The day is - Sunday");
break;
case 2:
MessageBox.Show("The day is - Monday");
break;
case 3:
MessageBox.Show("The day is - Tuesday");
break;
case 4:
MessageBox.Show("The day is - wednesday");
break;
case 5:
MessageBox.Show("The day is - Thursday");
break;
case 6:
MessageBox.Show("The day is - Friday");
break;
case 7:
MessageBox.Show("The day is - Saturday");
break;
default:
MessageBox.Show("Out of range !!");
break;
}