如何判断当前时间在晚上22:00到凌晨6:00之间

echoxue 2009-02-16 01:38:49

string _minute = DateTime.Now.Minute.ToString();
if ( DateTime.Now.Minute < 10 )
_minute = "0" + _minute;

string _time = DateTime.Now.Hour.ToString() + _minute;
int _time_num=Convert.ToInt32(_time);
if( _time_num > 0600 && _time_num<2200 )
{
string Y = "yes";
}
else
{
string N = "No";
}
一个问题,因为DateTime.Now.Minute.ToString(),如果是时间是小于10分钟的时候,返回是0-9。那么时间比较就不正确,我只好判断了
if ( DateTime.Now.Minute < 10 )
_minute = "0" + _minute;

求助能否有更好的方法来判断这个时间段呢?

谢谢!



...全文
3680 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
hdzdw 2009-02-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 echoxue 的回复:]
to :wuyi8808,
其实是一个出发时间和到达时间的判断,就要包括小时和分钟,不能光用小时啊

大家再看看
[/Quote]

请问楼主,我觉得的wuyi8808 代码简洁.
你的问题是:22:00 到6:00之间.
22.00- 22:59:59 是在22点这个范围以内,6点也同样是这个道理.还有需要判断分钟?
不过还有一点,应该判断是否小于7,而不是6

int hour = DateTime.Now.Hour;
if (hour >= 22 || hour < 7)
{
// 晚上22点(含)到凌晨6点(不含)之间
}
else
{
// 上述之外的时间段
}

不当之处,欢迎指教
zgke 2009-02-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 echoxue 的回复:]
to :wuyi8808,
其实是一个出发时间和的判断,就要包括小时和分钟,不能光用小时啊

大家再看看
[/Quote]


出发时间 到达时间 22:00 6:00 之间的关系是什么啊
echoxue 2009-02-16
  • 打赏
  • 举报
回复
to :wuyi8808,
其实是一个出发时间和到达时间的判断,就要包括小时和分钟,不能光用小时啊

大家再看看
SlaughtChen 2009-02-16
  • 打赏
  • 举报
回复
同意,楼上的
caorenlong 2009-02-16
  • 打赏
  • 举报
回复
学习
wuyi8808 2009-02-16
  • 打赏
  • 举报
回复
int hour = DateTime.Now.Hour;
if (hour >= 22 || hour < 6)
{
// 晚上22点(含)到凌晨6点(不含)之间
}
else
{
// 上述之外的时间段
}
zhantianyou 2009-02-16
  • 打赏
  • 举报
回复
樓上的可以嗎??
下邊的timeSpan end是否要為第二天的6點,
宝_爸 2009-02-16
  • 打赏
  • 举报
回复
试一试:

DateTime now = DateTime.Now;
TimeSpan span = now.TimeOfDay;

TimeSpan begin = new TimeSpan(22, 0, 0);
TimeSpan end = new TimeSpan(6, 0, 0);

if ((span > begin) || (span < end))
{
MessageBox.Show("between 22pm to 6am");
}
jsstb 2009-02-16
  • 打赏
  • 举报
回复
空军已经给出答案了,大家别再争了。讨论多了,只会让楼主越来越糊涂
oyfl1984 2009-02-16
  • 打赏
  • 举报
回复
int time = (DateTime.Now.Hour *100)+ DateTime.Now.Minute;
if ((time > 600) && (time < 2200))
{
//晚上22点(含)到凌晨6点(不含)之间
}
else {
//上述之外的时间段
}
tianjinldl 2009-02-16
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 hdzdw 的回复:]
引用 6 楼 echoxue 的回复:
to :wuyi8808,
其实是一个出发时间和到达时间的判断,就要包括小时和分钟,不能光用小时啊

大家再看看


请问楼主,我觉得的wuyi8808 代码简洁.
你的问题是:22:00 到6:00之间.
22.00- 22:59:59 是在22点这个范围以内,6点也同样是这个道理.还有需要判断分钟?
不过还有一点,应该判断是否小于7,而不是6

int hour = DateTime.Now.Hour;
if (hour >= 22 || hour < 7)
{
// 晚…
[/Quote]
22-6之间,应该是22点后6点前吧,6点后,那应该叫7点前了
我姓区不姓区 2009-02-16
  • 打赏
  • 举报
回复
空军的不就可以了吗,是楼主自己想得太复杂了把
DMU_WD 2009-02-16
  • 打赏
  • 举报
回复
不用判断分钟
echoxue 2009-02-16
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 soaringbird 的回复:]


if (hour >= 22 || hour < 7)
{
// 晚上22点(含)到凌晨6点(不含)之间
//那06:01呢?hour是6,也小于7,符合条件吗?
}
[/Quote]

是的,这个不符合的,所以还的考虑把分钟加上,这个也是我最早的时候为什么取分钟取比较啊。应该是<6的条件,right?
steal8275756 2009-02-16
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 hdzdw 的回复:]
请问楼主,我觉得的wuyi8808 代码简洁.
你的问题是:22:00 到6:00之间.
22.00- 22:59:59 是在22点这个范围以内,6点也同样是这个道理.还有需要判断分钟?
不过还有一点,应该判断是否小于7,而不是6

int hour = DateTime.Now.Hour;
if (hour >= 22 || hour < 7)
{
// 晚…
[/Quote]

3楼的代码是正确的 因为6:01分就不是6点以前了。 你的反而错了。
DMU_WD 2009-02-16
  • 打赏
  • 举报
回复
3楼的正解!
soaringbird 2009-02-16
  • 打赏
  • 举报
回复
if (hour >= 22 || hour < 7)
{
// 晚上22点(含)到凌晨6点(不含)之间
//那06:01呢?hour是6,也小于7,符合条件吗?
}
呦呦 2009-02-16
  • 打赏
  • 举报
回复
学习!!
echoxue 2009-02-16
  • 打赏
  • 举报
回复
to:hdzdw

呵呵,说的有道路,应该可以的

111,088

社区成员

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

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

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