c#输出某年某月的天数,有些年的12月输出的是29天??!!求高手指教!!程序如下:
namespaceswitch练习_2//让用户输入年份,输入月份,输出该月的天数{classProgram{staticvoidMain(string[]args){w...
namespace switch练习_2 //让用户输入年份,输入月份,输出该月的天数
{
class Program
{
static void Main(string[] args)
{
while (true)
{
Console.Write("请输入你要查询的年份:");
int year = Convert.ToInt32(Console.ReadLine());
Console.Write("请输入你要查询的月份:");
int month = Convert.ToInt32(Console.ReadLine());
bool yunNian = year % 400==0 || ((year % 4 == 0) && (year % 100 != 0));
bool tag = false;
switch (month)
度娘啊??
我贴图片给大家吧!!
图一:
图二:
图三:
我优化了一下程序:贴给大家看看: 展开
{
class Program
{
static void Main(string[] args)
{
while (true)
{
Console.Write("请输入你要查询的年份:");
int year = Convert.ToInt32(Console.ReadLine());
Console.Write("请输入你要查询的月份:");
int month = Convert.ToInt32(Console.ReadLine());
bool yunNian = year % 400==0 || ((year % 4 == 0) && (year % 100 != 0));
bool tag = false;
switch (month)
度娘啊??
我贴图片给大家吧!!
图一:
图二:
图三:
我优化了一下程序:贴给大家看看: 展开
5个回答
展开全部
程序不用这么复杂的:
int day1[12]={31,28,31,30,31,30,31,31,30,31,30,31}; //平年每个月天数
int day2[12]={31,29,31,30,31,30,31,31,30,31,30,31}; //润年每个月天数
知道了是不是闰年:
if(runnian==true)
Console.Write("请查询的月有{0}天:",day2[month-1]);
else
Console.Write("请查询的月有{0}天:",day1[month-1]);
追问
这是一种解决办法。但是我想晓得我的程序错在哪里了。不知道大侠能否明示??
谢谢了!!
2013-08-06
展开全部
if(runNian==true)
{
Month = 29;
}
这样写肯定有错误咯,2020是闰年,所以就输出29,其实你在判断闰年的时候应该判断二月份才会有29天吧。另外你的变量命名也不对,明明是day,却命名Month。
{
Month = 29;
}
这样写肯定有错误咯,2020是闰年,所以就输出29,其实你在判断闰年的时候应该判断二月份才会有29天吧。另外你的变量命名也不对,明明是day,却命名Month。
追问
哦,这倒提醒我了。我马上去验证一下,如果有问题,再问!
先谢谢!!
我在case中嵌套了一个if-else语句并删除switch外面的if判断问题就解决了。
在最后的代码中,int month= convert . toint32...后面加了一个变量 int day = month,这样在思维逻辑上就更加合理了!!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有那么复杂不?
Console.Write("请输入你要查询的年份:");
int year = Convert.ToInt32(Console.ReadLine());
Console.Write("请输入你要查询的月份:");
int month = Convert.ToInt32(Console.ReadLine());
string day = Convert.ToDateTime(Convert.ToDateTime(year.ToString().Trim() + "-" + month.ToString().Trim() + "-" + "01").AddMonths(1).ToString("yyyy-MM-01")).AddDays(-1).Day.ToString();
Console.WriteLine("你查询月份的天数是:'{0}'",day);
结束。。。
Console.Write("请输入你要查询的年份:");
int year = Convert.ToInt32(Console.ReadLine());
Console.Write("请输入你要查询的月份:");
int month = Convert.ToInt32(Console.ReadLine());
string day = Convert.ToDateTime(Convert.ToDateTime(year.ToString().Trim() + "-" + month.ToString().Trim() + "-" + "01").AddMonths(1).ToString("yyyy-MM-01")).AddDays(-1).Day.ToString();
Console.WriteLine("你查询月份的天数是:'{0}'",day);
结束。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将 if(yunNian == true) 改为 if(yunNian == true && month==2)
追问
谢谢回答,其他月份倒是对了,但是2月又不对了!!
不管是不是闰年,2月都是28天了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
为什么不直接用DataTime类去解析?
追问
谢谢回答。但是我是菜鸟....Datatime我看了相关的材料,确实好用。回头验证一下。
追答
直接 var dt=new DateTime(int Year,int Month,int Day)
然后 dt.IsLeapYear 判断是否为闰年。
天数的话用:
var d1=new DateTime(2013,11,1)
var d2=new DateTime(2013,12,1)
var days = (d2-d1).TotalDays 得到
两个DateTime相减得到的是TimeSpan类型
具体的看:
http://msdn.microsoft.com/ZH-CN/library/system.timespan
http://msdn.microsoft.com/zh-cn/library/System.DateTime.aspx
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询