如何在C#函数中返回一个月的数量

joh*_*ohn 5 c#

我想返回一个月的数量,我做了一个函数,但它总是返回0

这是我的代码:

public int getNrMonth(String s)
    {
        int nr=0;
        if (s.Equals("January"))
            nr = 1
        if (s.Equals("February"))
            nr = 2;
        return nr;


    }
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我Wath是错的吗?我是初学者!

Avi*_*tus 12

为什么不使用内置函数:

DateTime.ParseExact(monthName, "MMMM", CultureInfo.CurrentCulture ).Month
Run Code Online (Sandbox Code Playgroud)

以下是使用示例:

如何将一个月份名称(字符串)解析为整数,以便在C#中进行比较?


Dan*_*Tao 5

这样做会更好:

switch (s.Trim().ToUpper())
{
    case "JANUARY": return 1;
    case "FEBRUARY": return 2;
    // etc.
}

return 0;
Run Code Online (Sandbox Code Playgroud)

原因:

  1. switch 优化开始(小点,但值得一提).
  2. 一旦获得该值,所有剩余的if检查都是毫无意义的.
  3. 假设你想要的"一月"和"一月"和"一月"和"一月"的所有返回1,Trim()ToUpper()呼吁将采取照顾.