600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 输入1-365 的一个数字判断它是几月几日

输入1-365 的一个数字判断它是几月几日

时间:2022-07-17 01:21:45

相关推荐

输入1-365 的一个数字判断它是几月几日

输入1-365 的一个数字判断它是几月几日

首先我们要想到怎么判断是一年的第几个月,然后判断是一个月的第几天;我们来看一看代码;

using System;//第二个实验namespace classes{enum MonthName{january,February,march,April,May,June,July,August,September,October,November,December}class Program{//Bstatic System.Collections.ICollection DaysInMonths=new int [12]{31,28,31,30,31,30,31,31,30,31,30,31}; //存储月份的天数static void Main(string[] args){try{Console.Write("输入1-365天的某一天\n");string line =Console.ReadLine();int dayNum=int.Parse(line);if(dayNum<1||dayNum>365){throw new ArgumentOutOfRangeException("输入是没有意义的!");}int monthNum=0;foreach (int daysInMonth in DaysInMonths){if(dayNum<=daysInMonth){break;}else{dayNum-=daysInMonth;monthNum++;}}MonthName temp=(MonthName)monthNum;string monthName=Enum.Format(typeof(MonthName),temp,"g");Console.WriteLine("{0} {1}",dayNum,monthName);Console.Read();}catch(Exception caught){Console.WriteLine(caught);}}}}

我们虽然完美解决了这个问题,但是我们要注意到的是,闰年有366天,这个只是一般情况,所以我们大胆挑战一下;

闰年的2月有29天,所以我们存储月份的数组要加入一个闰年的月份数组;

static System.Collections.ICollection DaysInMonths1=new int [12]{31,29,31,30,31,30,31,31,30,31,30,31};

代码如下:我们首先要输入年份判断是否是闰年;

using System;//第二个实验namespace classes{enum MonthName{january,February,march,April,May,June,July,August,September,October,November,December}class Program{//Bstatic System.Collections.ICollection DaysInMonths=new int [12]{31,28,31,30,31,30,31,31,30,31,30,31};static System.Collections.ICollection DaysInMonths1=new int [12]{31,29,31,30,31,30,31,31,30,31,30,31};static void Main(string[] args){try{Console.Write("输入年份\n");string year =Console.ReadLine();int yearNum=int.Parse(year);bool isLeapYear=(yearNum%4==0&&yearNum%100!=0||yearNum%400==0);int maxDayNum = isLeapYear?366:365;//判断是不是闰年if(isLeapYear==true){//如果是闰年的话,把二月修改为29天Console.Write("输入1-{0}天的某一天\n",maxDayNum);string line1 =Console.ReadLine();int dayNum1=int.Parse(line1);if(dayNum1<1||dayNum1>maxDayNum){throw new ArgumentOutOfRangeException("输入是没有意义的!");}int monthNum1=0;foreach (int daysInMonth in DaysInMonths1){if(dayNum1<=daysInMonth){break;}else{dayNum1-=daysInMonth;monthNum1++;}}MonthName temp1=(MonthName)monthNum1;string monthName1=Enum.Format(typeof(MonthName),temp1,"g");Console.WriteLine("{0} {1}",dayNum1,monthName1);Console.Read(); }Console.Write("输入1-{0}天的某一天\n",maxDayNum);string line =Console.ReadLine();int dayNum=int.Parse(line);if(dayNum<1||dayNum>maxDayNum){throw new ArgumentOutOfRangeException("输入是没有意义的!");}int monthNum=0;foreach (int daysInMonth in DaysInMonths){if(dayNum<=daysInMonth){break;}else{dayNum-=daysInMonth;monthNum++;}}MonthName temp=(MonthName)monthNum;string monthName=Enum.Format(typeof(MonthName),temp,"g");Console.WriteLine("{0} {1}",dayNum,monthName);Console.Read();}catch(Exception caught){Console.WriteLine(caught);}}}}

需要注意特殊天第60天,如果加入判断是否为闰年时,如果添加成功就显示时2月29日,如果失败就时3月1日。不能盲目输入天数,区别不开。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。