使用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的c#中的月份

然而,使用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;
        }