تحويل "الوقت الحالي" إلى "الوقت بالدقائق منذ 00:00" مساعدة الحساب
-
08-07-2019 - |
سؤال
وأنا لم تستخدم NSDate ذلك بكثير، لذلك أريد بعض المساعدة مع حساب أقوم به.
ولدي صحيح أن لديها ساعة إغلاق مخزني في دقائق منذ منتصف الليل. في الأساس، ويغلق مخزني في 17:00، الذي يعطيني صحيحا 1020.
وحتى الآن انها 22:45 أو 22.45. صحيح منذ 00:00 هو 1365، ومن هذا يمكنني القول
if (storeHour < currentTime) {
// closed!
}
ولكن، وأنا لا أعرف كيف أحصل من "22.45" أن لدي من NSDate لتحويلها إلى عدد صحيح يمثل الوقت منذ 00:00. هل هناك شيء في NSDate يمكن أن تساعدني في ذلك؟
وتشك
المحلول
وأنا لا أوصي باستخدام كائن NSDate
لتخزين الوقت يغلق المتجر بدلا من استخدام الخاص شكل صحيح المخصصة. من المؤسف أن NSDate
يمثل كل من التاريخ والوقت من الآن.
في أي حال، يمكنك التحقق <لأ href = "http://developer.apple.com/mac/library/documentation/cocoa/reference/Foundation/Classes/NSDateComponents_Class/Reference/Reference.html#//apple_ref / وثيقة / c_ref / NSDateComponents "يختلط =" noreferrer "> NSDateComponents
. هل يمكن أن يكون وسيلة المرافق مثل:
int minutesSinceMidnight:(NSDate *)date
{
NSCalendar *gregorian = [[NSCalendar alloc]
initWithCalendarIdentifier:NSGregorianCalendar];
unsigned unitFlags = NSHourCalendarUnit | NSMinuteCalendarUnit;
NSDateComponents *components = [gregorian components:unitFlags fromDate:date];
return 60 * [components hour] + [components minute];
}
نصائح أخرى
وهناك نسخة سريعا ماnotnoop وأجاب:
func minutesSinceMidnight(start : NSDate) -> Int {
let units : NSCalendarUnit = [.Hour, .Minute]
let components = NSCalendar.currentCalendar().components(units, fromDate: start)
return 60 * components.hour + components.minute
}
إذا كان لديك NSDate
أخرى التي من المقرر أن منتصف الليل، ثم يمكنك استخدام الأسلوب timeIntervalSinceDate
الكائن NSDate للحصول على NSTimeInterval
مرة أخرى مع الفرق بينهما. بدلا من ذلك، إذا كنت ترغب دائما لمقارنة منتصف الليل مع الوقت الحالي، يمكن استدعاء الأسلوب timeIntervalSinceNow
على NSDate منتصف الليل وكنت الحصول على NSTimeInterval
الظهر (ولو سلبية) مع الفارق بين منتصف الليل والوقت الحالي.
ويعرف NSTimeInterval
باعتباره double
وفق المعايير التي تملك عددا من ثانية (وأي ثواني كسور).