2011-09-05 47 views
0

我有我的应用程序非常令人讨厌的挑战。客户希望在3个独立的UIPickers中显示日,小时和分钟 - 这些值一起代表一个重复的事件。检索UIPickers串并转换成NSDate的

所以我需要将这些值转换成一个NSDate,我可以再后来用它来设置警报,并计算天数,直到此事件等

任何想法如何转换和这些值组合成正确的NSDate 。

例如@“周二”+“15”+“00”将在明天(2011年9月6日下午3点)等。

回答

-1

将每个值组合成一个字符串:[NSString stringWithFormat:@“%s%d%d”, dayString,monthInt,yearInt]

然后使用NSDateFormatter .. 像这个帖子:convert string to date


所以你的问题是,你有月份和年份(甚至precice日)的数据。 你可以猜测用户意味着有一天这个月和今年,但它不会在所有情况下都正确的。

正确NSDate的需要(天)一个月,一年和时区 - 除了你现在从UIPickers得到。

例如@ “星期二” + “15” + “00”。将明日(2011年9月6日下午3点)

它也可以是2011 9月13日下午3点,或2021年9月7日在下午3点等。

除非你确定它总是在下一个可能的日子,否则它不会是正确的日期!

在一个月的第一天,你选择一个星期一 - 那么可能有4或5个可能的星期一。 年的第一个月 - 12个可能的月份。 那么多年..

但是,如果下一个可能的日子是“正确的足够”: 获取今天的日期,并得到一个字符串,你从它(月,年,时区)需要什么。从今天

循环播放,直到匹配DAYNAME被发现, 并检查你是在同一年。

所以,如果你选择一个DAYNAME +时间23:59在今年的最后一天 - 下一个可能正确的日期是明年。 (NSDateComponents可以用来获得有效的日期和添加+1年等。)。

并不总是能够说服客户 - 但我会试着问他们是否可以用不同的采摘生活,使他们能够得到一个正确的日期..

+0

没有一天一个月或一年的采摘。它的日期名称,小时和分钟。 – TheLearner

+0

好的,谢谢,我会要求客户端 - 它真的好像很多的努力。也许只是一个日历。 – TheLearner