编写功能代码需要注意哪些(一)
来源:互联网 发布:黑马程序员冯佳 编辑:程序博客网 时间:2024/06/05 02:05
在开发项目过程中我们往往为了赶项目,而做了一些吃力不讨好的事情。比如在编写功能代码时,我为了实现我们的功能没有花实现把整理逻辑里清楚,就开始写代码。
而这样的结果导致写完代码之后再去阅读理解之前的逻辑,需要花费好一段时间才能看得懂代码具体所表示的意思。同时也不利于方法的扩展,使得需要重新编写整理逻辑,这样其实在整理开发过程花的时间更多。 例如下面一段代码:
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" };
}
看看是不是清晰明了许多???
为自己的新站做下广告
百姓生活信息平台
而这样的结果导致写完代码之后再去阅读理解之前的逻辑,需要花费好一段时间才能看得懂代码具体所表示的意思。同时也不利于方法的扩展,使得需要重新编写整理逻辑,这样其实在整理开发过程花的时间更多。 例如下面一段代码:
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" };
}
看看是不是清晰明了许多???
为自己的新站做下广告
百姓生活信息平台
- 编写功能代码需要注意哪些(一)
- 编写Web用户登录功能需要注意哪些?
- 编写多线程java程序时需要注意哪些问题?(来自于effective java se)
- 编写软件测试用例需要注意哪些
- 编写代码时需要注意的规范
- 编写代码时需要注意的规范
- app测试需要注意哪些(android)
- java编写代码需要注意的小细节
- 网站需要注意哪些东西
- 论坛推广需要注意哪些
- seo需要注意哪些细节
- 前端需要注意哪些SEO
- 前端需要注意哪些SEO?
- 哪些代码需要重构(二)
- 程序员,除了代码外,在职业生涯中你还需要注意什么?(一)
- 代码编写注意点
- C++ 代码编写注意
- 支付平台需要注意哪些事项
- 内存分配方式
- 编程行业的展望 java vs c++
- 常量指针和指针常量
- 【Html5每日练习】canvas beginPath()的理解
- Android音频数据传输
- 编写功能代码需要注意哪些(一)
- C#如何为winform程序打包发布应用(图解教程)
- C语言变长数组
- BCG使用方法
- EDI随笔(3):EDI的报文标准和代码标准
- 在Linux的PC上挂载jffs2根文件系统映像
- 在Objective-C中何时用self.何时不用?
- Silverlight之变换(6)
- HttpModule与HttpHandler详解