A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王海亮 中级黑马   /  2012-7-18 18:30  /  2414 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

大家都知道在日历中月有31天的和30天的也有29天 28天,  那么怎么获取在C#中如何过去某一月的最后一天?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

6 个回复

倒序浏览
本帖最后由 刘秋菊 于 2012-7-18 19:46 编辑

  int Year;
  int Month ;
int Days = DateTime.DaysInMonth(Year, Month);//一个月中的最后一天
return Convert.ToDateTime(Year.ToString() + "-" + Month.ToString() + "-" + Days.ToString());

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
你是不是要计算过去的某个月的最后一天是30日/31日/29日/还是28日?如果是,那就以下思路(代码就不写了,没VS)
switch case判断1/3/5/7/8/10/12月为31天先,4/6/9/11为30天,2月特殊,需用IF else判断是不是闰年,是则29天,否则28天,然后每个CASE单独输出运行结果----------如果还有什么不懂,继续问我,继续交流

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
首先判断正常月份:1、3、5、7、810、12这些月份,肯定是31天,然后4、6、9、11这些月份是30天,然后考虑是不是闰年,如果是闰年2月有28天,如果是平年2月有29天
代码如下: int year;
            int month;
            Console.WriteLine("请输入一个年份:");
            year = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("请输入一个月份:");
            month = Convert.ToInt32(Console.ReadLine());
            switch (month)
                {
                    case 1:
                    case 3:
                    case 5:
                    case 7:
                    case 8:
                    case 10:
                    case 12:
                        Console.WriteLine("31天");
                        break;
                    case 4:
                    case 6:
                    case 9:
                    case 11:
                        Console.WriteLine("30天");
                        break;
                    case 2:
                       if((year%400==0)||(year%4==0&&year%100!=0))
                       {
                           Console.WriteLine("29天");
                       }
                        break;
                    default:
                        Console.WriteLine("你输入的数据不正确,请重新操作");
                        break;
                }

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
李朋朋 发表于 2012-7-19 22:50
首先判断正常月份:1、3、5、7、810、12这些月份,肯定是31天,然后4、6、9、11这些月份是30天,然后考虑是 ...

没有28天,补一下吧,
case 2:
                       if((year%400==0)||(year%4==0&&year%100!=0))
                       {
                           Console.WriteLine("29天");
                       }
                      else
                      {
                       Console.WriteLine("28天");
                       }

                        break;
回复 使用道具 举报
DateTime内有个方法叫DaysInMonth(int,int) 方法!可以获取一个月有多少天,那有多少天那最后一天就是多少号了!

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
用enum{}方法,然后通过条件判断,(以上是除了2月的这种情况)
最后使用楼上所说的
if((year%400==0)||(year%4==0&&year%100!=0))
{
  Console.WriteLine("29天");
}
else
{
  Console.WriteLine("28天");
}
break;

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马