黑马程序员技术交流社区

标题: 求日期时间 [打印本页]

作者: 胡元江    时间: 2013-2-27 14:55
标题: 求日期时间
    日期时间中得到每个季度的第一天怎么搞。能通过测试的。。季度是345   678 91011  12 1 2不是  123456这样的

作者: 安玉波    时间: 2013-2-27 17:37
第一季度:3月4月5月   本季度的第一天是3月1日
第二季度:6月7月8月   本季度的第一天是6月1日
第三季度:9月10月11月   本季度的第一天是9月1日
代码如下:
  1. /// <summary>
  2.         /// 求每个季度的第一天的日期
  3.         /// </summary>
  4.         /// <param name="num">第几集度</param>
  5.         /// <returns>返回每个季度的第一天的日期</returns>
  6.         public string ReturnTime(int num)
  7.         {
  8.             string time;
  9.             switch (num)
  10.             {
  11.                 case 1:
  12.                     time = "三月一日";
  13.                     break;
  14.                 case 2:
  15.                     time = "六月一日";
  16.                     break;
  17.                 case 3:
  18.                     time = "九月一日";
  19.                     break;
  20.                 default:
  21.                     time = "你输入的数据不正确!";
  22.                     break;
  23.             }
  24.             return time;
  25.         }
复制代码
我理解的是否和你所提的问题相符  
希望对你有所帮助。
作者: 岳珅    时间: 2013-2-27 19:23
简单的用DateTime.Now获得当前日期,然后用 now.Month.ToString()获得当前月份,345月份是第一季度,所以我用if语句来判断当前的季度,再用switch case语句进行选择输出即可0.0
这是偶这个程序的基本思路。。。从你问题上的理解只有这个了- -如果不是回复我下下- -我再改程序
  1.         static void Main(string[] args)
  2.         {
  3.             DateTime now = DateTime.Now;
  4.             string month = now.Month.ToString();
  5.             Console.WriteLine("当前月份是:{0}月",month);
  6.             int num;
  7.             if(month=="3"||month=="4"||month=="5")
  8.             {
  9.                 num=1;
  10.             }
  11.             else if(month=="6"||month=="7"||month=="8")
  12.             {
  13.                 num=2;
  14.             }
  15.             else if(month=="9"||month=="10"||month=="11")
  16.             {
  17.                 num=3;
  18.             }
  19.             else
  20.             {
  21.                 num=4;
  22.             }
  23.             string time;
  24.             switch (num)
  25.             {
  26.                 case 1:
  27.                     time = "三月一日";
  28.                     break;
  29.                 case 2:
  30.                     time = "六月一日";
  31.                     break;
  32.                 case 3:
  33.                     time = "九月一日";
  34.                     break;
  35.                 case 4:
  36.                     time = "十二月一日";
  37.                     break;
  38.                 default:
  39.                     time = "你输入的数据不正确!";
  40.                     break;
  41.             }
  42.             Console.WriteLine("当前的是第{0}季度,该季度的第一天是{1}",num,time);
  43.             Console.ReadKey();
  44.         }
复制代码

作者: 胡元江    时间: 2013-2-27 19:47
额。不错。写死的也是思路。不过我的愿意是自动的读取系统当前的时间。然后取出季度
作者: 赵文博    时间: 2013-2-28 22:18
static void Main(string[] args)
        {
            string[] quarterArr={"","1","1","2","2","2","3","3","3","4","4","4","1"};           //月份与季度映射的数组,用月份作为下标直接从数组中取出季度

            string month = DateTime.Now.Month.ToString();                                       //取得当前月份

            int index = Convert.ToInt16(month);                                                 //将当前月份转成整型

            Console.WriteLine(quarterArr[index]);                                               //不用进行判断,直接用月份作为下标从数组中取出季度                                                            

            Console.ReadLine();
   
        }

你的意思是这样吗。


作者: 胡元江    时间: 2013-3-1 00:18
有见的。活跃大家
作者: 颜晓峰    时间: 2013-3-1 10:44
根据你的需求:自动读取系统当前时间,并判断,代码如下:
//输出当前日期
            Console.WriteLine("系统当前日期为:{0}",DateTime.Now);
            //取出日期中的月份
            int mon = DateTime.Now.Month;
            //判断属于第几季度
            switch(mon)
            {
                case 3:
                    Console.WriteLine("现在属于第1季度,该季度的第一天为3月1号");
                    break;
                case 4:
                    Console.WriteLine("现在属于第1季度,该季度的第一天为3月1号");
                    break;
                case 5:
                    Console.WriteLine("现在属于第1季度,该季度的第一天为3月1号");
                    break;
                case 6:
                    Console.WriteLine("现在属于第2季度,该季度的第一天为6月1号");
                    break;
                case 7:
                    Console.WriteLine("现在属于第2季度,该季度的第一天为6月1号");
                    break;
                case 8:
                    Console.WriteLine("现在属于第2季度,该季度的第一天为6月1号");
                    break;
                case 9:
                    Console.WriteLine("现在属于第3季度,该季度的第一天为9月1号");
                    break;
                case 10:
                    Console.WriteLine("现在属于第3季度,该季度的第一天为9月1号");
                    break;
                case 11:
                    Console.WriteLine("现在属于第3季度,该季度的第一天为9月1号");
                    break;
                case 12:
                    Console.WriteLine("现在属于第4季度,该季度的第一天为12月1号");
                    break;
                case 1:
                    Console.WriteLine("现在属于第4季度,该季度的第一天为12月1号");
                    break;
                case 2:
                    Console.WriteLine("现在属于第4季度,该季度的第一天为12月1号");
                    break;            
            }
            Console.ReadLine();

作者: 赵文博    时间: 2013-3-1 13:13
你写的代码太多了
string[] quarterArr = { "", "1", "1", "2", "2", "2", "3", "3", "3", "4", "4", "4", "1" };           //月份与季度映射的数组,用月份作为下标直接从数组中取出季度
            string[] strArr = { "", "12", "12",  "3", "3", "3", "6", "6", "6", "9", "9", "9","12" };            //存放月份所在季度的第一个月

            string month = DateTime.Now.Month.ToString();                                       //取得当前月份

            int index = Convert.ToInt16(month);                                                 //将当前月份转成整型

            Console.WriteLine("现在属于第{0}季度,该季度的第一天为{1}月1号", quarterArr[index], strArr[index]);     //不用进行判断,直接用月份作为下标从数组中取出季度                                                            

            Console.ReadLine();




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2