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