写代码时候,第一次是为了实现需要功能。

w.IsHasSpecialTime = True
dMints = ComClass.TimesLapse(dSub.ToDate, dSub.FromDate).TotalMinutes
If w.TimePeriod IsNot Nothing ThenFor Each d In AttTimeListIf ComClass.TimeInScope(d, ComClass.TimesCombine(w.Day, w.TimePeriod.CheckInTime1Date), ComClass.TimesCombine(w.Day, w.TimePeriod.CheckInTime2Date)) Thenw.AttInDate = dExit ForEnd IfNextIf w.IsOverDay ThenFor i As Integer = AttTimeList2Day.Count - 1 To 0 Step -1d = AttTimeList2Day.Item(i)If ComClass.TimeInScope(d, ComClass.TimesCombine(w.Day.AddDays(1), w.TimePeriod.CheckOutTime1Date), ComClass.TimesCombine(w.Day.AddDays(1), w.TimePeriod.CheckOutTime2Date)) Thenw.AttOutDate = dExit ForEnd IfNextElseFor i As Integer = AttTimeList.Count - 1 To 0 Step -1d = AttTimeList.Item(i)If ComClass.TimeInScope(d, ComClass.TimesCombine(w.Day, w.TimePeriod.CheckOutTime1Date), ComClass.TimesCombine(w.Day, w.TimePeriod.CheckOutTime2Date)) Thenw.AttOutDate = dExit ForEnd IfNextEnd IfIf w.AttInDate = MinDate OrElse w.AttOutDate = MinDate Thenw.IsCalculate = Truew.AttHours = 0w.InValidHours = (w.TimePeriod.WorkMinutes - dMints) / 60dSub.ValidHours = dMints / 60ElseIf w.AttInDate > MinDate And w.AttOutDate > MinDate Thenw.IsCalculate = Truew.AttHours = (w.TimePeriod.WorkMinutes - dMints) / 60dSub.ValidHours = dMints / 60End If
End If

处理效果还是可以,不过代码很长很长。同时间有10几个类似这样的代码段。加上其他内容差不多1000多行代码。

于是就想简化点。弄了好久才得出简化结果。 10几个类似的代码段慢慢改。剩下800多行了。

w.IsHasSpecialTime = True
dMints = ComClass.TimesLapse(dSub.ToDate, dSub.FromDate).TotalMinutes
getAttIn(w, ComClass.TimesCombine(w.Day, w.TimePeriod.CheckInTime1Date), ComClass.TimesCombine(w.Day, w.TimePeriod.CheckInTime2Date))
If w.IsOverDay ThengetAttOut2Day(w, ComClass.TimesCombine(w.Day.AddDays(1), w.TimePeriod.CheckOutTime1Date), ComClass.TimesCombine(w.Day.AddDays(1), w.TimePeriod.CheckOutTime2Date))
ElsegetAttOut1Day(w, ComClass.TimesCombine(w.Day, w.TimePeriod.CheckOutTime1Date), ComClass.TimesCombine(w.Day, w.TimePeriod.CheckOutTime2Date))
End If
If w.AttInDate = MinDate OrElse w.AttOutDate = MinDate Thenw.IsCalculate = Truew.AttHours = 0w.InValidHours = (w.TimePeriod.WorkMinutes - dMints) / 60dSub.ValidHours = dMints / 60
ElseIf w.AttInDate > MinDate And w.AttOutDate > MinDate Thenw.IsCalculate = Truew.AttHours = (w.TimePeriod.WorkMinutes - dMints) / 60dSub.ValidHours = dMints / 60
End If

结果中间过程有点问题,忽略了很多节点判断,分析,于是结构重新调整,增加几个函数过程。

继续简化,优化。结果不知道能简化成多少行,但是单从字符多少来看,已经减少了很多字符了。

dMints = ComClass.TimesLapse(dSub.ToDate, dSub.FromDate).TotalMinutes
With w.IsHasSpecialTime = True.CalcWorkTimeRange()
End With
getAttTime(w)
If w.AttInDate = MinDate OrElse w.AttOutDate = MinDate Thenw.AttHours = 0w.InValidHours = ToHour(w.WorkMinutes - dMints)dSub.ValidHours = ToHour(dMints)
ElseIf w.AttInDate > MinDate And w.AttOutDate > MinDate Thenw.AttHours = ToHour(w.WorkMinutes - dMints)dSub.ValidHours = ToHour(dMints)
End If

期待能得出自己想要的结果。

加油!

VB.Net程序设计:代码简化过程(备忘录)相关推荐

  1. VB.Net程序设计:CodeStringHelper多行代码批量修改器

    CodeStringHelper多行代码批量修改器源码 VB.Net程序设计过程中,经常需要对多行代码批量修改,特意将经常遇到过的类型集合在一起.源码分享! 支持功能: 1.删除多余的空白行(多用于复 ...

  2. 计算机软件技术代码,计算机软件技术基础VisualBasic程序设计代码.ppt

    计算机软件技术基础VisualBasic程序设计代码 Visual Basic6.0程序设计 课 程 简 介 1.课程简介:Visual Basic是按照高等院校教学 需要开设的课程,详细介绍Visu ...

  3. 使用VB.NET加快代码开发速度

    以前在学校时,编写代码都是使用C#,习惯了C#的代码习惯,等工作后由于工作需要逐渐的开始采用了VB.NET开发项目,渐渐地喜欢上了VB.NET,现在我就罗列一些VB.NET加速代码开发的方法. 一.智 ...

  4. 一行代码简化Python异常信息:错误清晰指出,排版简洁美观 | 开源分享

    鱼羊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 即使是Python,报错时也令人头大. 看着这一堆乱麻,不知道是该怀疑人生,还是怀疑自己手残. 那么,Python异常输出美化工具Prett ...

  5. 湖南vb程序设计二级计算机考试题库答案,计算机二级VB语言程序设计考试题及答案...

    计算机二级VB语言程序设计考试题及答案 不论从事何种工作,如果要想做出高效.实效,务必先从自身的工作计划开始.有了计划,才不致于使自己思想迷茫.头脑空洞,不知从哪里着手开展工作.下面是小编搜索整理的计 ...

  6. 2012高等学校计算机等级考试试卷二级 vb.net程序设计,2012上海市高等校计算机等级考试试卷二级VBNET程序设计.docx...

    2012上海市高等校计算机等级考试试卷二级VBNET程序设计 2012年上海市高等学校计算机等级考试试卷二级 VB.NET程序设计 ( A 卷)(本试卷考试时间 120 分钟)一.单选题 ( 本大题 ...

  7. 《十》浏览器基础及渲染引擎解析一个网页的过程、JavaScript 引擎解析 JavaScript 代码的过程

    浏览器:是安装在电脑里面的一个软件,能够将页面内容渲染出来呈现给用户查看,并让用户与网页进行交互. 服务器其实就是性能比较高的计算机,这些计算机 24 小时不断电. 不关机. 开发者在本地开发出 HT ...

  8. java vb 速度_使用VB.NET加快代码开发速度

    以前在学校时,编写代码都是使用C#,习惯了C#的代码习惯,等工作后由于工作需要逐渐的开始采用了VB.NET开发项目,渐渐地喜欢上了VB.NET,现在我就罗列一些VB.NET加速代码开发的方法. 一.智 ...

  9. 计算机二级VB语言程序设计-第九章

    计算机- 最新全国计算机等级考试二级- 全国计算机等级考试二级- 全国计算机等级考试二级VB语言程序设计精讲班- 第九章-: 9.1Sub过程.flv 大小:120. M 9.2Funtion过程.f ...

最新文章

  1. 基于特征点匹配的自适应目标跟踪算法
  2. MySQL——基于CASE WHEN的常用查询
  3. 1007. Maximum Subsequence Sum (25)
  4. 使用 Go 实现 TLS socket server
  5. python方差分析模型的预测结果中endog表示_python时间序列分析
  6. 【重点:DP 双指针 栈】LeetCode 42. Trapping Rain Water
  7. Apache Oozie Installation
  8. Nancy之静态文件处理
  9. 专业的在线考试系统-快考题,支持自制题库/在线试卷答题
  10. 2016年计算机考研大纲,2016考研计算机大纲解析
  11. 马化腾:电力时代孕育了计算机,人工智能兴盛于云计算
  12. Dell H300/6i/6iR/H700/H800阵列卡配置(转)
  13. 聚散随缘,勿忘心安 -- 颜夕溪
  14. PostgreSQL 修改用户密码
  15. 一次lock_wait的解决
  16. phpstorm许可证_PhpStorm 8发布-查看新功能并获取免费许可证
  17. 二维离散小波变换及其在MATLAB数字图像处理中的应用
  18. win7计算机无法右键,win7右键无法使用怎么办_解决win7点击鼠标右键没反应的方法...
  19. 《自然语言处理(哈工大 关毅 64集视频)》学习笔记:第五章 n-gram语言模型
  20. Nyzo验证者搭建教程(可能是最适合程序员参与的区块链)

热门文章

  1. java 客户端定时任务_定时任务最简单的3种实现方法(超实用)
  2. Linux环境下静默安装oracle12cR2
  3. android 摄像头画面竖,OpenCV for Android(5):竖屏摄像头旋转问题
  4. .Net内部缓存System.Web.Caching.Cache 和Redis缓存缓存工厂切换
  5. 【解决报错】java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
  6. 关于交换机的现网接入配置简述
  7. 求方程ax^2+bx+c=0的根
  8. 修复Edge浏览器无法登录微软账户问题
  9. 《TCP/IP详解卷1:协议》——第2章:链路层(转载)
  10. Python 基础API