سؤال

وأريد تحويل عدد عشري إلى NSDate

وأنا بتحويل NSDate إلى تعويم استخدام هذا:

// Turn the date into Integers 
NSCalendar *calendar= [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];  
NSCalendarUnit unitFlags = NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;  
NSDateComponents *dateComponents = [calendar components:unitFlags fromDate:nsdate_wakeTime];  
NSInteger hour = [dateComponents hour];  
NSInteger min = [dateComponents minute];  

//Convert the time in 24:60 to x.x format.
float myTime = hour + min/60; 

وبعد بعض الاشياء الرياضيات أفعل على المتغير mytime يمكنني الحصول على حفنة من الأوقات الأخرى في شكل تعويم نفسه.

وكيف أنتقل تعويم إلى NSDate؟

وشكرا!

هل كانت مفيدة؟

المحلول

إذا قمت بتحويل الوقت الذي كنت قد تحسب لثانية (حتى، mytime * 60)، ثم يمكنك استخدام dateWithTimeIntervalSinceReferenceDate: أن نعود إلى NSDate. من الرياضيات تقومون به، ويبدو أن التاريخ المشار إليه هنا ستكون 00:00 لليوم المذكور. كما ذكر جيسون رغم ذلك، هناك على الارجح أفضل طريقة لفعل ما تحاول تحقيقه.

وبالإضافة إلى ذلك، تحتاج إلى تغيير "myTime" حساب لقسمة 60.0 إذا كنت فعلا تريد دقائق. نموذج التعليمات البرمجية الخاصة بك وتقسيم قيمة عدد صحيح أقل من 60 من قيمة عددية 60، والتي ستكون دائما 0.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top