mirror of
https://github.com/samsonjs/samhuri.net-ios.git
synced 2026-04-08 11:45:55 +00:00
117 lines
2.2 KiB
Objective-C
117 lines
2.2 KiB
Objective-C
//
|
|
// NSNumber+Rubyfy.m
|
|
// Domainchy
|
|
//
|
|
// Created by Marin Usalj on 11/15/12.
|
|
// Copyright (c) 2012 mneorr.com | @mneorr | mneorr@gmail.com. All rights reserved.
|
|
//
|
|
|
|
#import "NSNumber+ObjectiveSugar.h"
|
|
|
|
@implementation NSNumber (ObjectiveSugar)
|
|
|
|
- (void)times:(void (^)(void))block {
|
|
for (int i = 0; i < self.integerValue; i++)
|
|
block();
|
|
}
|
|
|
|
- (void)timesWithIndex:(void (^)(NSUInteger))block {
|
|
for (int i = 0; i < self.unsignedIntegerValue; i++)
|
|
block(i);
|
|
}
|
|
|
|
- (void)upto:(int)number do:(void (^)(NSInteger))block {
|
|
for (NSInteger i = self.integerValue; i <= number; i++)
|
|
block(i);
|
|
}
|
|
|
|
- (void)downto:(int)number do:(void (^)(NSInteger))block {
|
|
for (NSInteger i = self.integerValue; i >= number; i--)
|
|
block(i);
|
|
}
|
|
|
|
- (NSNumber *)second {
|
|
return self.seconds;
|
|
}
|
|
|
|
- (NSNumber *)seconds {
|
|
return self;
|
|
}
|
|
|
|
- (NSNumber *)minute {
|
|
return self.minutes;
|
|
}
|
|
|
|
- (NSNumber *)minutes {
|
|
return @(self.floatValue * 60);
|
|
}
|
|
|
|
- (NSNumber *)hour {
|
|
return self.hours;
|
|
}
|
|
|
|
- (NSNumber *)hours {
|
|
return @(self.floatValue * [@60 minutes].integerValue);
|
|
}
|
|
|
|
- (NSNumber *)day {
|
|
return self.days;
|
|
}
|
|
|
|
- (NSNumber *)days {
|
|
return @(self.floatValue * [@24 hours].integerValue);
|
|
}
|
|
|
|
- (NSNumber *)week {
|
|
return self.weeks;
|
|
}
|
|
|
|
- (NSNumber *)weeks {
|
|
return @(self.floatValue * [@7 days].integerValue);
|
|
}
|
|
|
|
- (NSNumber *)fortnight {
|
|
return self.fortnights;
|
|
}
|
|
|
|
- (NSNumber *)fortnights {
|
|
return @(self.floatValue * [@2 weeks].integerValue);
|
|
}
|
|
|
|
- (NSNumber *)month {
|
|
return self.months;
|
|
}
|
|
|
|
- (NSNumber *)months {
|
|
return @(self.floatValue * [@30 days].integerValue);
|
|
}
|
|
|
|
- (NSNumber *)year {
|
|
return self.years;
|
|
}
|
|
|
|
- (NSNumber *)years {
|
|
return @(self.floatValue * [@(365.25) days].integerValue);
|
|
}
|
|
|
|
- (NSDate *)ago {
|
|
return [self ago:[NSDate date]];
|
|
}
|
|
|
|
- (NSDate *)ago:(NSDate *)time {
|
|
return [NSDate dateWithTimeIntervalSince1970:([time timeIntervalSince1970] - self.floatValue)];
|
|
}
|
|
|
|
- (NSDate *)since:(NSDate *)time {
|
|
return [NSDate dateWithTimeIntervalSince1970:([time timeIntervalSince1970] + self.floatValue)];
|
|
}
|
|
|
|
- (NSDate *)until:(NSDate *)time {
|
|
return [self ago:time];
|
|
}
|
|
|
|
- (NSDate *)fromNow {
|
|
return [self since:[NSDate date]];
|
|
}
|
|
|
|
@end
|