判断是上午还是下午还是晚上 还是早上

Joel_L 2011-11-13 02:01:04
我又有个窗体 在获取系统时间后我想通过时间来判断是上午还是下午是晚上还是早上。 这个怎么搞啊,。
...全文
2520 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
stonespace 2011-11-13
  • 打赏
  • 举报
回复
呵呵,确实,应该是

DateTime tmCur=DateTime.Now;

if (tmCur.Hour<8||tmCur.Hour>18)
{//晚上
}
else if (tmCur.Hour>=8&&tmCur.Hour<12)
{//上午
}
else
{//下午
}
gaoz 2011-11-13
  • 打赏
  • 举报
回复
DateTime.Hour....得到小时,再判断区域!
宝_爸 2011-11-13
  • 打赏
  • 举报
回复
DateTime.Hour 自己判断,上午,还是下午,还是晚上没有统一的标准。
a1156025449 2011-11-13
  • 打赏
  • 举报
回复
楼上代码有误,楼主注意等于的部分
比如按楼上的写法 8点—9点之间这个时间变成 下午了
a1156025449 2011-11-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sdl2005lyx 的回复:]

引用 2 楼 a1156025449 的回复:

楼上代码有误,楼主注意等于的部分
比如按楼上的写法 8点—9点之间这个时间变成 下午了


说法有问题,既然时间值是0~23区间的,8点—9点之间时间怎么会变成下午呢!
下午对应的是20~21对吧。。。
[/Quote]


大哥我说的就是1楼的代码问题,你能看清楚再回复吗??
sdl2005lyx 2011-11-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 a1156025449 的回复:]

楼上代码有误,楼主注意等于的部分
比如按楼上的写法 8点—9点之间这个时间变成 下午了
[/Quote]

说法有问题,既然时间值是0~23区间的,8点—9点之间时间怎么会变成下午呢!
下午对应的是20~21对吧。。。
stonespace 2011-11-13
  • 打赏
  • 举报
回复
通过DateTime.Now.Hour判断,这个属性是时间的小时部分,从0~23,

DateTime tmCur=DateTime.Now;

if (tmCur.Hour<8||tmCur.Hour>18)
{//晚上
}
else if (tmCur.Hour>8&&tmCur.Hour<12)
{//上午
}
else
{//下午
}
目 录 第一章 概述 1 第二章 总体设计 2 2.1 时钟显示的结构 2 2.2设计总思路 2 第三章 软件设计 3 3.1获取时间的各整型数据 3 3.2提取数字的各位 4 3.3 七段布尔显示控件编码 4 3.4 译码、布尔显示数字 5 3.5 显示时间的区段 5 3.6 闪烁 6 第四章 程序调试 7 总 结 8 附 录 9 程序框图前面板 9 程序面板程序框图 10 第一章 概述 虚拟仪器技术就是利用高性能的模块化硬件,结合高效灵活的软件来完成各种测试、 测量和自动化的应用。灵活高效的软件能帮助您创建完全自定义的用户界面,模块化的 硬件能方便地提供全方位的系统集成,标准的软硬件平台能满足对同步和定时应用的需 求。这也正是NI近30年来始终引领测试测量行业发展趋势的原因所在。只有同时拥有高 效的软件、模块化I/O硬件和用于集成的软硬件平台这三大组成部分,才能充分发挥虚拟 仪器技术性能高、扩展性强、开发时间少,以及出色的集成这四大优势。LabVIEW(Lab oratory Virtual Instrument Engineering Workbench,实验室虚拟仪器集成环境)是一种图形化的编程语言(又称G语言),它是 由美国NI公司推出的虚拟仪器开发平台,也是目前应用最广、发展最快、功能最强的图 形化软件集成开发环境。使用这种语言编程时,基本上不用写程序代码,取而代之的是 程序框图。LabVIEW的特点如下: 编程简单; 开发周期短; 高效性; 开放性; 自定义性; 性价比高,能一机多用。 第二章 总体设计 2.1 时钟显示的结构 本课题要求设计一个数字时钟。通过获取电脑的系统时间,并分离出给数字,在通过 布尔显示显示。数字的显示主要是7个长条的布尔显示组成,原理与7段数码管相似。7段 数码管显示不同的数字主要通过其7个布尔不同的真假值控制,将0- 9对应的7段布尔显示值依次存入一个布尔数组里,只需提取此数组的不同段即可让其显 示不同的值,如显示"0"提取数组的0-6位分别赋值给7段布尔显示。 2.2设计总思路 获取时间的控件可以获取的信息有:年、月、日、星期、天数、时、分、秒、秒小数 等,取得的值为整型数据,利用除数取余即可分离个十位。为了获得更好的显示效果将 背景改为黑色,布尔显示的颜色为绿色。 第三章 软件设计 3.1获取时间的各整型数据 软件中获取日期/时间(秒)控件从计算机系统中自动提取时间,并转换成日期、时 间等,控件图如下: 图3-1 在获取时间后,将数据解除捆绑即分别取得年、月、日、时间等,如下图: 图 3-2 3.2提取数字的各位 通过除10取余便可得到个位,商为十位,以此方法也可求出年的各个数字,如下图: 图3-3 3.3 七段布尔显示控件编码 取出各位数字后,并不可直接显示,要通过统一编码规范显示的格式,这样才能显示 各位数,编码各段如下: 图3-4 A、B、C、D、E、F、G分别对应着七段布尔显示控件,要显示"0"时A~G的赋值分别为:1 1 1 1 1 1 0(1代表真,0为假),显示其他数字也是按此做法的。最后将此70个值串接起来存入一 个布尔数组里,如图3-4右。 3.4 译码、布尔显示数字 要显示数字时,只需将数字乘以7,再将乘积的值作为索引在那存放真值的数组里寻找对 应显示的七个布尔显示控件的值。如显示'2',则从数组的第2*7=14位开始,依次取出7 个(分别代表着七个布尔的真值),其他也同理。最后捆绑成簇,因为七段显示布尔已 做成簇。Labview表达如下: 图 3-5 3.5 显示时间的区段 显示的时间被分成7段,即凌晨、早上上午、中午、下午、傍晚、晚上,只需通过表达 式节点计算出此时属于哪一段(1- 7),再通过七个布尔文本分别显示即可,布尔显示控件叠加在一起,程序及显示效果如 下图: 图3-6 3.6 闪烁 闪烁时只要判断其是否秒数大于0.5S,大于则显示(为真),小于则熄灭(为假),图 3-7为程序框图,3-8为实际效果: 图 3-7 图 3-8 第四章 程序调试 程序很容易上手,没有C语言那么复杂的语法等,图形界面让人更直观的对各部分进 行操作。此课程设计重点及难点在于布尔显示数字,开始时感觉其数据量非常大,由于 簇的特点使得程序的复杂性大大降低,而且程序更加清晰。显示的主要借助于平时常用 的数码管,它的显示原理就如本课程设计的要求是一样的,主要有统一的编码,显示时 通过解码即可显示出数字。 开始做好7段布尔显示后,不管怎么看都很生硬,完全不是数字时钟的模样,研究了 半天,原来是背景的缘故,当我换背景成黑色,且布尔显示位绿色后,显示效果大不一 样,让人感觉到它就是一个电子手表一样。不过它还是有一点不足:显示的字还是那么 生硬,不生动,字体台统一、死板了。不过由于是布尔
目 录 第一章 概述 1 第二章 总体设计 2 2.1 时钟显示的结构 2 2.2设计总思路 2 第三章 软件设计 3 3.1获取时间的各整型数据 3 3.2提取数字的各位 4 3.3 七段布尔显示控件编码 4 3.4 译码、布尔显示数字 5 3.5 显示时间的区段 5 3.6 闪烁 6 第四章 程序调试 7 总 结 8 附 录 9 程序框图前面板 9 程序面板程序框图 10 第一章 概述 虚拟仪器技术就是利用高性能的模块化硬件,结合高效灵活的软件来完成各种测试、 测量和自动化的应用。灵活高效的软件能帮助您创建完全自定义的用户界面,模块化的 硬件能方便地提供全方位的系统集成,标准的软硬件平台能满足对同步和定时应用的需 求。这也正是NI近30年来始终引领测试测量行业发展趋势的原因所在。只有同时拥有高 效的软件、模块化I/O硬件和用于集成的软硬件平台这三大组成部分,才能充分发挥虚拟 仪器技术性能高、扩展性强、开发时间少,以及出色的集成这四大优势。LabVIEW(Lab oratory Virtual Instrument Engineering Workbench,实验室虚拟仪器集成环境)是一种图形化的编程语言(又称G语言),它是 由美国NI公司推出的虚拟仪器开发平台,也是目前应用最广、发展最快、功能最强的图 形化软件集成开发环境。使用这种语言编程时,基本上不用写程序代码,取而代之的是 程序框图。LabVIEW的特点如下: 编程简单; 开发周期短; 高效性; 开放性; 自定义性; 性价比高,能一机多用。 第二章 总体设计 2.1 时钟显示的结构 本课题要求设计一个数字时钟。通过获取电脑的系统时间,并分离出给数字,在通过 布尔显示显示。数字的显示主要是7个长条的布尔显示组成,原理与7段数码管相似。7段 数码管显示不同的数字主要通过其7个布尔不同的真假值控制,将0- 9对应的7段布尔显示值依次存入一个布尔数组里,只需提取此数组的不同段即可让其显 示不同的值,如显示"0"提取数组的0-6位分别赋值给7段布尔显示。 2.2设计总思路 获取时间的控件可以获取的信息有:年、月、日、星期、天数、时、分、秒、秒小数 等,取得的值为整型数据,利用除数取余即可分离个十位。为了获得更好的显示效果将 背景改为黑色,布尔显示的颜色为绿色。 第三章 软件设计 3.1获取时间的各整型数据 软件中获取日期/时间(秒)控件从计算机系统中自动提取时间,并转换成日期、时 间等,控件图如下: 图3-1 在获取时间后,将数据解除捆绑即分别取得年、月、日、时间等,如下图: 图 3-2 3.2提取数字的各位 通过除10取余便可得到个位,商为十位,以此方法也可求出年的各个数字,如下图: 图3-3 3.3 七段布尔显示控件编码 取出各位数字后,并不可直接显示,要通过统一编码规范显示的格式,这样才能显示 各位数,编码各段如下: 图3-4 A、B、C、D、E、F、G分别对应着七段布尔显示控件,要显示"0"时A~G的赋值分别为:1 1 1 1 1 1 0(1代表真,0为假),显示其他数字也是按此做法的。最后将此70个值串接起来存入一 个布尔数组里,如图3-4右。 3.4 译码、布尔显示数字 要显示数字时,只需将数字乘以7,再将乘积的值作为索引在那存放真值的数组里寻找对 应显示的七个布尔显示控件的值。如显示'2',则从数组的第2*7=14位开始,依次取出7 个(分别代表着七个布尔的真值),其他也同理。最后捆绑成簇,因为七段显示布尔已 做成簇。Labview表达如下: 图 3-5 3.5 显示时间的区段 显示的时间被分成7段,即凌晨、早上上午、中午、下午、傍晚、晚上,只需通过表达 式节点计算出此时属于哪一段(1- 7),再通过七个布尔文本分别显示即可,布尔显示控件叠加在一起,程序及显示效果如 下图: 图3-6 3.6 闪烁 闪烁时只要判断其是否秒数大于0.5S,大于则显示(为真),小于则熄灭(为假),图 3-7为程序框图,3-8为实际效果: 图 3-7 图 3-8 第四章 程序调试 程序很容易上手,没有C语言那么复杂的语法等,图形界面让人更直观的对各部分进 行操作。此课程设计重点及难点在于布尔显示数字,开始时感觉其数据量非常大,由于 簇的特点使得程序的复杂性大大降低,而且程序更加清晰。显示的主要借助于平时常用 的数码管,它的显示原理就如本课程设计的要求是一样的,主要有统一的编码,显示时 通过解码即可显示出数字。 开始做好7段布尔显示后,不管怎么看都很生硬,完全不是数字时钟的模样,研究了 半天,原来是背景的缘故,当我换背景成黑色,且布尔显示位绿色后,显示效果大不一 样,让人感觉到它就是一个电子手表一样。不过它还是有一点不足:显示的字还是那么 生硬,不生动,字体台统一、死板了。不过由于是布尔

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧