我想知道是否有办法让用户输入像01这样的数字,并使用dateTime将该字符串转换为月份。我知道如何让用户输入一个字符串,例如01/01/2011,并将其转换为DateTime。有没有办法使用datetime将两个数字字符串转换为一个月。像这样的东西,但那会起作用
Console.WriteLine("Please the month numerically");
string date = Console.ReadLine();
dt = Convert.ToDateTime(date).Month;
答案 0 :(得分:21)
然而,你可能会通过DateTime跳过一些箍;
CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(int monthNumber);
可能更容易。
答案 1 :(得分:2)
它已内置于.NET框架中:请参阅System.Globalization.DateTimeFormatInfo.MonthNames
答案 2 :(得分:0)
拥有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;
但这不太明智。
答案 3 :(得分:0)
您的示例不完整,因为您需要指定日期中的year
和day
。
假设该数据必须是当前日期,您可以执行以下操作:
DateTime dt = new DateTime(DateTime.Now.Year, int.Parse("01"), DateTime.Now.Day);
显然,不要忘记添加一些控件,比如
编辑
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);
}
}
希望这有帮助。
答案 4 :(得分:0)
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";
}
答案 5 :(得分:-3)
从日期时间中删除月份,并使用开关/案例选择来分配变量。
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;
}