使用DateTime在c#中的月份

时间:2012-01-19 19:55:07

标签: c# datetime

我想知道是否有办法让用户输入像01这样的数字,并使用dateTime将该字符串转换为月份。我知道如何让用户输入一个字符串,例如01/01/2011,并将其转换为DateTime。有没有办法使用datetime将两个数字字符串转换为一个月。像这样的东西,但那会起作用

        Console.WriteLine("Please the month numerically");
        string date = Console.ReadLine();
        dt = Convert.ToDateTime(date).Month;

6 个答案:

答案 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)

您的示例不完整,因为您需要指定日期中的yearday

假设该数据必须是当前日期,您可以执行以下操作:

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);
      }
  }     

希望这有帮助。

答案 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;
        }