मैं iOS में दो समय (संभवतः अलग-अलग दिनों में) के बीच घंटों में बीतने वाले समय की गणना कैसे कर सकता हूं?
मैं iOS में दो समय (संभवतः अलग-अलग दिनों में) के बीच घंटों में बीतने वाले समय की गणना कैसे कर सकता हूं?
जवाबों:
NSDate समारोह timeIntervalSinceDate: आप सेकंड में दो दिनांकों के अंतर दे देंगे।
NSDate* date1 = someDate;
NSDate* date2 = someOtherDate;
NSTimeInterval distanceBetweenDates = [date1 timeIntervalSinceDate:date2];
double secondsInAnHour = 3600;
NSInteger hoursBetweenDates = distanceBetweenDates / secondsInAnHour;
देखें, ऐप्पल संदर्भ लाइब्रेरी http://developer.apple.com/library/mac/navigation/ या यदि आप Xcode का उपयोग कर रहे हैं तो मेनू से सहायता / प्रलेखन का चयन करें ।
देखें: कैसे-रूपांतरित-ए-नेस्टीमेन्थेवल-सेकंड-में-मिनट
--edit: डेलाइट सेविंग / लीप सेकंड को सही ढंग से संभालने के लिए ilr correctlyvil का उत्तर नीचे देखें
NSCalendar *c = [NSCalendar currentCalendar];
NSDate *d1 = [NSDate date];
NSDate *d2 = [NSDate dateWithTimeIntervalSince1970:1340323201];//2012-06-22
NSDateComponents *components = [c components:NSHourCalendarUnit fromDate:d2 toDate:d1 options:0];
NSInteger diff = components.minute;
NSDayCalendarUnit|NSHourCalendarUnit|NSMinuteCalendarUnit
दिन, घंटे या मिनट के लिए आवश्यक घटक बदलें, जो अंतर आप चाहते हैं। तो NSDayCalendarUnit
फिर चयन किया जाता है इसके लिए इसी तरह दो तिथियों के बीच दिनों की संख्या वापस आ जाएंगे, NSHourCalendarUnit
औरNSMinuteCalendarUnit
स्विफ्ट 4 संस्करण
let cal = Calendar.current
let d1 = Date()
let d2 = Date.init(timeIntervalSince1970: 1524787200) // April 27, 2018 12:00:00 AM
let components = cal.dateComponents([.hour], from: d2, to: d1)
let diff = components.hour!
-(NSMutableString*) timeLeftSinceDate: (NSDate *) dateT {
NSMutableString *timeLeft = [[NSMutableString alloc]init];
NSDate *today10am =[NSDate date];
NSInteger seconds = [today10am timeIntervalSinceDate:dateT];
NSInteger days = (int) (floor(seconds / (3600 * 24)));
if(days) seconds -= days * 3600 * 24;
NSInteger hours = (int) (floor(seconds / 3600));
if(hours) seconds -= hours * 3600;
NSInteger minutes = (int) (floor(seconds / 60));
if(minutes) seconds -= minutes * 60;
if(days) {
[timeLeft appendString:[NSString stringWithFormat:@"%ld Days", (long)days*-1]];
}
if(hours) {
[timeLeft appendString:[NSString stringWithFormat: @"%ld H", (long)hours*-1]];
}
if(minutes) {
[timeLeft appendString: [NSString stringWithFormat: @"%ld M",(long)minutes*-1]];
}
if(seconds) {
[timeLeft appendString:[NSString stringWithFormat: @"%lds", (long)seconds*-1]];
}
return timeLeft;
}
चेकआउट: यह दिन के उजाले की बचत का ख्याल रखता है, लीप वर्ष के रूप में यह गणना करने के लिए आईओएस कैलेंडर का उपयोग करता है। आप घंटों और दिनों के साथ मिनटों को शामिल करने के लिए स्ट्रिंग और स्थितियों को बदल सकते हैं।
+(NSString*)remaningTime:(NSDate*)startDate endDate:(NSDate*)endDate {
NSDateComponents *components;
NSInteger days;
NSInteger hour;
NSInteger minutes;
NSString *durationString;
components = [[NSCalendar currentCalendar] components: NSCalendarUnitDay|NSCalendarUnitHour|NSCalendarUnitMinute
fromDate: startDate toDate: endDate options: 0];
days = [components day];
hour = [components hour];
minutes = [components minute];
if (days > 0) {
if (days > 1) {
durationString = [NSString stringWithFormat:@"%d days", days];
}
else {
durationString = [NSString stringWithFormat:@"%d day", days];
}
return durationString;
}
if (hour > 0) {
if (hour > 1) {
durationString = [NSString stringWithFormat:@"%d hours", hour];
}
else {
durationString = [NSString stringWithFormat:@"%d hour", hour];
}
return durationString;
}
if (minutes > 0) {
if (minutes > 1) {
durationString = [NSString stringWithFormat:@"%d minutes", minutes];
}
else {
durationString = [NSString stringWithFormat:@"%d minute", minutes];
}
return durationString;
}
return @"";
}
स्विफ्ट 3 और उससे अधिक का उपयोग करने वालों के लिए,
let dateString1 = "2018-03-15T14:20:00.000Z"
let dateString2 = "2018-03-20T14:20:00.000Z"
let Dateformatter = DateFormatter()
Dateformatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
let date1 = Dateformatter.date(from: dateString1)
let date2 = Dateformatter.date(from: dateString2)
let distanceBetweenDates: TimeInterval? = date2?.timeIntervalSince(date1!)
let secondsInAnHour: Double = 3600
let secondsInDays: Double = 86400
let secondsInWeek: Double = 604800
let hoursBetweenDates = Int((distanceBetweenDates! / secondsInAnHour))
let daysBetweenDates = Int((distanceBetweenDates! / secondsInDays))
let weekBetweenDates = Int((distanceBetweenDates! / secondsInWeek))
print(weekBetweenDates,"weeks")//0 weeks
print(daysBetweenDates,"days")//5 days
print(hoursBetweenDates,"hours")//120 hours
NSCalendar
की-components:fromDate:toDate:options:
विधि।