检查字符串时间范围现在是不是为[重复]

Posted

技术标签:

【中文标题】检查字符串时间范围现在是不是为[重复]【英文标题】:Checking if string time range is now [duplicate]检查字符串时间范围现在是否为[重复] 【发布时间】:2016-10-25 08:20:33 【问题描述】:

我有一个具有 2 个 String 属性的对象:notifyFromnotifyTo

他们是这样的:

notifyFrom:14:00

notifyTo:18:00

在我向用户发送通知(这是我的应用程序的一部分)之前,我想检查时间是否在这些时间之间以及是否要发送通知。

注意:这里的日期无关紧要。我只是想看看时间

最好的方法是什么?

谢谢!

【问题讨论】:

表示你想检查你的时间字符串是否在notifyfromnotifyto之间?如果是这样,那么日期呢?还是日期无关紧要?? @Lion 日期在这里无关紧要。我只是想看看时间 从当前日期获取hour组件,并检查RangenotifyFrom...notifyTocontains是否为值。但是,如果To 可以低于From,它会变得有点复杂 【参考方案1】:

您可以编写类似的方法,

+ (BOOL)date:(NSDate*)date isBetweenDate:(NSDate*)beginDate andDate:(NSDate*)endDate

if ([date compare:beginDate] == NSOrderedAscending)
    return NO;

if ([date compare:endDate] == NSOrderedDescending)
    return NO;

return YES;

参考:this so post

【讨论】:

【参考方案2】:

首先将输入的两个字符串转换为日期

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"HH:mm:ss"];

NSDate *date1 = [dateFormatter dateFromString:notifyFrom];
NSDate *date2 = [dateFormatter dateFromString:notifyTo];

NSDate *userDate = [NSDate date];

if (([userDate laterDate: date1] == userDate) && ([userDate laterDate: date2] == date2))

【讨论】:

以上是关于检查字符串时间范围现在是不是为[重复]的主要内容,如果未能解决你的问题,请参考以下文章

当答案超出数字范围或不是数字时做[重复]

Python:检查范围内是不是存在对象[重复]

检查 MYSQL 表行中是不是存在特定时间范围

JavaScript 检查时间范围是不是重叠

检查邮政编码是不是在范围内

检查输入的日期时间是不是在 2 个日期时间值的范围内