我想知道完成一小时的剩余时间。无论哪个时间是什么时候?
如果它的05:01:00那么它应该给3540秒 如果它的11:58:40那么它会给出80秒,依此类推。我试图在谷歌上找到它但无法找到它。 提前谢谢。
答案 0 :(得分:4)
NSCalendar
有方法可以进行这种日期数学运算:
NSDate *now = [NSDate date];
NSCalendar *calendar = [NSCalendar currentCalendar];
// find next date where the minutes are zero
NSDate *nextHour = [calendar nextDateAfterDate:now matchingUnit:NSCalendarUnitMinute value:0 options:NSCalendarMatchNextTime];
// get the number of seconds between now and next hour
NSDateComponents *componentsToNextHour = [calendar components:NSCalendarUnitSecond fromDate:now toDate:nextHour options:0];
NSLog(@"%ld", componentsToNextHour.second);
答案 1 :(得分:0)
但它需要iOS 8或更高版本。
使用可用于较旧操作系统版本的NSCalendar
和NSDateComponents
,还有其他方法可以做到这一点。
您可以使用componentsFromDate
获取当前日期的月,日,年和小时,然后递增小时值并使用NSCalendar
方法dateFromComponents:
将您转换为调整后的组件回到了日期。
答案 2 :(得分:-2)
CREATE OR REPLACE FUNCTION incdouble(value integer)
RETURNS RECORD AS
$BODY$
DECLARE
linc integer;
ret RECORD;
BEGIN
linc := value + 1;
SELECT linc,linc*2 INTO ret;
RETURN ret;
END;
$BODY$
LANGUAGE plpgsql ;
select * from test t,incdouble(t.value) as (i integer ,d integer)
使用正确的时间和日期填写以秒为单位
编辑:另一种方法是计算currenthour并以整数形式返回。然后在下面返回的NSInteger中添加一个(你必须确保处理它在午夜之后的情况!)
NSDate *date1 = [NSDate dateWithString:@"2010-01-01 00:00:00 +0000"];
NSDate *date2 = [NSDate dateWithString:@"2010-02-03 00:00:00 +0000"];
NSTimeInterval secondsBetween = [date2 timeIntervalSinceDate:date1];