编写功能代码需要注意哪些(一)

在开发项目过程中我们往往为了赶项目,而做了一些吃力不讨好的事情。比如在编写功能代码时,我为了实现我们的功能没有花实现把整理逻辑里清楚,就开始写代码。
而这样的结果导致写完代码之后再去阅读理解之前的逻辑,需要花费好一段时间才能看得懂代码具体所表示的意思。同时也不利于方法的扩展,使得需要重新编写整理逻辑,这样其实在整理开发过程花的时间更多。 例如下面一段代码:
        public static string[] GetDefaulttime()
        {
            int h = DateTime.Now.Hour;
            int mn = DateTime.Now.Minute;

            string taketime = string.Empty;
            string takehour = string.Empty;
            string takeminutes = "00";

            string returntime = string.Empty;
            string returnhour = string.Empty;
            string returnminutes = "00";


            if (h == 17)
            {
                if (mn <= 29)
                {
                    h = DateTime.Now.Hour + 3;
                    taketime = DateTime.Today.ToString("yyyy-MM-dd");
                    returntime = DateTime.Today.AddDays(1).ToString("yyyy-MM-dd");
                }
                else
                {
                    h = 8;
                    taketime = DateTime.Today.AddDays(1).ToString("yyyy-MM-dd");
                    returntime = DateTime.Today.AddDays(2).ToString("yyyy-MM-dd");
                }
            }
            else if (h < 7)
            {
                h = 10;
                taketime = DateTime.Today.AddDays(0).ToString("yyyy-MM-dd");
                returntime = DateTime.Today.AddDays(1).ToString("yyyy-MM-dd");
            }
            else if (h >= 20)
            {
                h = 10;
                if (DateTime.Now.Hour == 20 && mn <= 29)
                    h = 8;
                taketime = DateTime.Today.AddDays(1).ToString("yyyy-MM-dd");
                returntime = DateTime.Today.AddDays(2).ToString("yyyy-MM-dd");
            }
            else if (h >= 7 && h < 17)
            {
                if (mn <= 29) h = DateTime.Now.Hour + 3;
                else h = DateTime.Now.Hour + 4;
                taketime = DateTime.Today.ToString("yyyy-MM-dd");
                returntime = DateTime.Today.AddDays(1).ToString("yyyy-MM-dd");
            }
            else if (h > 17 && h <= 20)
            {
                h = 8;
                if (DateTime.Now.Hour == 20 && mn > 29)
                    h = 10;
                taketime = DateTime.Today.AddDays(1).ToString("yyyy-MM-dd");
                returntime = DateTime.Today.AddDays(2).ToString("yyyy-MM-dd");
            }
            takehour = h >= 10 ? h.ToString() : "0" + h.ToString();
            returnhour = takehour;
            string[] temp = { taketime, takehour, takeminutes, returntime, returnhour, returnminutes };
            return temp;
        }
返回时间数组,我首先先理理这个方法所表达的意思。
首先可以看出有两个时间区操作,一个是在17:30以前的,一个是17:30之后的时间处理方式。如下讲解:
1.在17:30时间段中只有h这个“时间”值有变化,而变化值分成两块:7点,7-17:30。
2.在17:30之后的时间段也只有时间h这个“时间”值有变化,其他两个变量都是相对固定值。
现在我们思路整理清晰后,我们可以重新编写这个返回时间数组方法。
        public static string[] GetDefaulttime()
        {
            int h = DateTime.Now.Hour;
            int mn = DateTime.Now.Minute;
            int minutes=h * 60 + mn;
            int addDay = minutes / (17 * 60 + 30);
            //判断时间
            h = addDay == 0 ? (h < 7 ? 10 : (DateTime.Now.Hour + 3 + mn / 30)) : (minutes < 20 * 60 + 30 ? 8 : 10);
            string takehour, returnhour;
            returnhour = takehour = (h >= 10 ? "" : "0") + h.ToString();

            string taketime = DateTime.Today.AddDays(addDay).ToString("yyyy-MM-dd");
            string returntime = DateTime.Today.AddDays(addDay + 1).ToString("yyyy-MM-dd");
            return new string[] { taketime, takehour, "00", returntime, returnhour, "00" };
        }
看看是不是清晰明了许多???

为自己的新站做下广告
百姓生活信息平台

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值