C#计划好几个月了

时间:2011-04-30 12:00:06

标签: c#

我正在锻炼身体。我是一个初学者,不知道从哪里开始。我被要求创建一个控制台程序,如果你给它一个1到12之间的数字,它必须给你相应的月份名称,如果你给它一个月的名称,它应该给你月份的数字。请帮助代码。应该使用ARRAY来完成。谢谢。

7 个答案:

答案 0 :(得分:2)

取决于你正在学习什么,我猜......他们可能只是在展示一个switch(intMonth)类型的东西,所以:

switch(intMonth)
{        
         case 1:   
            return "January";
            break;                  
         case 2:   
            return "February";
            break;
         ....
}

或如上所述,使用DateTime ...

有很多方法可以做到这一点......我猜你需要选择正确的方式...最有效的方式......所以,取决于你的任务。

祝你好运。

答案 1 :(得分:2)

希望你能从这段代码中学到一些东西,因为如果它被复制到USB记忆棒上,并且不给它老师,我会非常生气,来到你的家里弄得一团糟! :)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Globalization;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int iMonth = -1;

            // loop until iMonth is 0
            while (iMonth != 0)
            {
                Console.WriteLine("Please insert a number from 1 to 12 and press enter. Enter 0 to exit.");
                string sMonth = Console.ReadLine();

                // try to get a number from the string
                if (!int.TryParse(sMonth, out iMonth))
                {
                    Console.WriteLine("You did not enter a number.");
                    iMonth = -1; // so we continue the loop
                    continue;
                }

                // exit the program
                if (iMonth == 0) break;

                // not a month
                if (iMonth < 1 || iMonth > 12) {
                    Console.WriteLine("The number must be from 1 to 12.");
                    continue;
                }

                // get the name of the month in the language of the OS
                string monthName = CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(iMonth);
                Console.WriteLine("The name of the month is " + monthName);
            }

        }
    }
}

如果您的老师需要自定义提供的名称,那么您可以在最后一部分使用switch语句:

switch (iMonth)
{        
         case 1:   
            Console.WriteLine("January");
            break;                  
         case 2:   
            Console.WriteLine("February");
            break;
         // add more
}

如果他想要一个数组练习,那么你可以声明一个包含所有字符串的数组并使用它:

string[] monthNames = new string[] {
  "January",
  "February",
  // add more
};

并使用它来获取名称:

Console.WriteLine(monthNames[iMonth]);

答案 2 :(得分:0)

这样做:

字符串到Int月

代码:

Datetime.Parse(Monvalue + "/1/2011").ToString("MM")

赞:

Datetime.Parse("January/1/2011").ToString("MM")

重新启动: 01

Int to String Month

代码:

Datetime.Parse( Monvalue +"/9/2011").ToString("MMMMM")

赞:

Datetime.Parse("1/9/2011").ToString("MMMMM")

重新启动: “一月”

在此之前你应该处理错误的案件。我希望对你有帮助

答案 3 :(得分:0)

正如Ernest建议的那样,看一下System.Globalization.CultureInfo中的DateTimeFormat属性。您正在寻找的是一种名为GetMonthName()的方法。传递给GetMonthName()的数字是该月的数字表示。

答案 4 :(得分:0)

static void Main(string[] args)
        {

            Console.WriteLine("Give me an integer between 1 and 12, and I will give you the month");

            int monthInteger = int.Parse(Console.ReadLine());

            DateTime newDate = new DateTime(DateTime.Now.Year, monthInteger, 1);

            Console.WriteLine("The month is: " + newDate.ToString("MMMM"));
            Console.WriteLine();

            Console.WriteLine("Give me a month name (ex: January), and I will give you the month integer");

            string monthName = Console.ReadLine();

            monthInteger = DateTime.ParseExact(monthName + " 1, " + DateTime.Now.Year, "MMMM d, yyyy", System.Globalization.CultureInfo.InvariantCulture).Month;

            Console.WriteLine("The month integer is " + monthInteger);
            Console.ReadLine();

        }

答案 5 :(得分:0)

在数字和名称之间进行翻译的任务非常简单,所以你如何做到这一点取决于你目前学习的语言元素是什么。

您可以将问题划分为多个子任务,例如确定输入是否是名称的数量,根据该选项选择正确的转换,以及执行转换的两种不同方式。每个子任务都可以通过几种不同的方式解决。

要检查输入,您可以将其与月份名称进行比较,如果它们都不匹配,则假定它是一个数字,或者您可以使用Int32.TryParse尝试将输入解析为数字,如果失败假设它是一个月的名字。

进行转换的最基本方法是大量if语句。您还可以使用开关,使用月份名称数组,或使用词典进行单独查找。

答案 6 :(得分:0)

private string[] months = { "Jan", "Feb", "Mar", "Apr" };
public string GetMonth(int x)
{
    if(x > 0  && x < months.Length)
        return months[x];
    else
        return "";
}