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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

这几天在论坛看到很多马友,在讨论类的问题,写了一个用类实现输入年月日,判断这一天是这一年第几天的程序。
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;

  5. namespace exam2
  6. {
  7.     class Date
  8.     {
  9.         protected string year;
  10.         protected string month;
  11.         protected string day;

  12.         protected string  InitYear(string yy) //初始化年
  13.         {
  14.             this.year = yy;
  15.             return this.year;
  16.         }
  17.         protected string InitMonth(string yy) //初始化月
  18.         {
  19.             this.month = yy;
  20.             return this.month;
  21.         }
  22.         protected string InitDay(string yy) //初始化年
  23.         {
  24.             this.day = yy;
  25.             return this.day;
  26.         }
  27.         protected bool IsRuiNian(string yy)  //判断是不是闰年
  28.         {
  29.             int YY=int.Parse(yy);
  30.             if (YY % 400 == 0 || (YY % 4 == 0 && YY % 100 == 0))
  31.                 return true;
  32.             else
  33.                return false;
  34.         }

  35.         protected int[,] GetMonth(string year) //获得月份的天数
  36.         {
  37.             
  38.             int[,] Mounth = { {1,31},{2,28},{3,31},{4,30},{5,31},{6,30},{7,31},{8,31},{9,30},{10,31},{11,30},{12,31}};
  39.             if (IsRuiNian(year))
  40.                 Mounth[1,1] = 29;
  41.             return Mounth;
  42.         }

  43.         public int GetDays(string year, string month, string day)//计算总天数
  44.         {
  45.             int SumDay = int.Parse(day);//总天数
  46.             int [,]Mounth = this.GetMonth(year);
  47.             int mm = int.Parse(month);
  48.             for (int i = 1; i < mm;i++ )//计算从1月到输入的月份的天数
  49.             {
  50.                 SumDay += Mounth[i, 1];
  51.             }
  52.             
  53.             return SumDay;

  54.         }
  55.     }
  56.     class Program
  57.     {

  58.         //输入某年某月某日,判断这一天是这一年的第几天?
  59.         static void Main(string[] args)
  60.         {
  61.             Date date=new Date();
  62.             Console.Write("年:");
  63.             string year = Console.ReadLine();
  64.             Console.Write("月:");
  65.             string month = Console.ReadLine();
  66.             Console.Write("日:");
  67.             string day = Console.ReadLine();
  68.             Console.WriteLine(string.Format("{0}年{1}月{2}日是第{3}天:", year, month, day, date.GetDays(year, month, day)));//用Format格式化输出
  69.             Console.ReadKey();
  70.             
  71.         }
  72.     }
  73. }
复制代码

11 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
{:soso_e179:}
回复 使用道具 举报
黑马网友  发表于 2013-8-10 16:17:16
板凳
  if (YY % 400 == 0 || (YY % 4 == 0 && YY % 100 == 0))                 return true;             else                return false;
回复 使用道具 举报
瑞年判定:能被4整除但不能被100整除 或 能被400整除 ,貌似代码里有笔误哦。
回复 使用道具 举报
sxdxgzr@126.com 发表于 2013-8-10 16:18
瑞年判定:能被4整除但不能被100整除 或 能被400整除 ,貌似代码里有笔误哦。 ...

是哦,O(∩_∩)O谢谢指正哦
回复 使用道具 举报
思路还是很清晰,但是我不会告诉你DateTime这个类当中就有一个方法直接就可以算出一天是今天的第几天
回复 使用道具 举报
熊丽 中级黑马 2013-8-10 22:51:13
8#
心动行动 发表于 2013-8-10 22:06
思路还是很清晰,但是我不会告诉你DateTime这个类当中就有一个方法直接就可以算出一天是今天的第几天 ...

呵呵,这我真不知道,O(∩_∩)O谢谢咯
回复 使用道具 举报
熊丽 中级黑马 2013-8-10 22:54:43
9#
心动行动 发表于 2013-8-10 22:06
思路还是很清晰,但是我不会告诉你DateTime这个类当中就有一个方法直接就可以算出一天是今天的第几天 ...

这是看到第八期上活动的题目,所以想写来玩玩,练练手
回复 使用道具 举报
我也是基础测试题中有这道题,然后我也想着像你这样做,最后看了下DateTime发现简单太多
回复 使用道具 举报
心动行动 发表于 2013-8-10 23:04
我也是基础测试题中有这道题,然后我也想着像你这样做,最后看了下DateTime发现简单太多 ...

确实简单了很多哟
回复 使用道具 举报
练习总是好的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马