পূর্ণসংখ্যা বিন্যাসে কীভাবে এনএসডিট দিন, মাস এবং বছর পাবেন?


96

আমি NSDateপূর্ণসংখ্যার ফর্মের দিন, মাস এবং বছরের উপাদানগুলি পেতে চাই অর্থাত যদি তারিখটি 1/2/1988 হয় তবে আমার পূর্ণসংখ্যা হিসাবে 1, 2 এবং 1988 আলাদাভাবে পাওয়া উচিত। আমি কীভাবে আইওএস এ এটি করতে পারি? আমি অনুরূপ প্রশ্নটি পেয়েছি তবে পদ্ধতিটি descriptionWithCalendarFormat: একটি সতর্কতা দেয় এবং মনে হয় এখনই হ্রাস পেয়েছে ।


কোনও একক পূর্ণসংখ্যার জন্য প্রয়োজন হলে এনএসডেটকে একটি পূর্ণসংখ্যায় রূপান্তর দেখুন NSDate।
— সুরগাচ

উত্তর:


13

সুইফট

let components = NSCalendar.currentCalendar().components([.Day, .Month, .Year], fromDate: self)
let day = components.day
let month = components.month
let year = components.year

সুবিধার্থে আপনি NSDateএটিকে একটি এক্সটেনশনে রাখতে পারেন এবং এটিকে একটি টিপল ফেরত দিতে পারেন:

extension NSDate: Comparable {

    var dayMonthYear: (Int, Int, Int) {
        let components = NSCalendar.currentCalendar().components([.Day, .Month, .Year], fromDate: self)
        return (components.day, components.month, components.year)
    }
}

এখন আপনাকে কেবল লিখতে হবে:

let (day, month, year) = date.dayMonthYear

আপনি যদি কেবলমাত্র বছরটি লিখতে চান তবে লিখতে পারেন:

let (_, _, year) = date.dayMonthYear

4
আমি আপনার পদ্ধতির পছন্দ। কোনো প্রস্তাবনা যদিও প্যারামিটার নামকরণ পরিবর্তন হয় (day: Int, month: Int, year: Int), এই ভাবে আপনি ব্যবহার করে ফলাফলের ব্যবহার করতে পারেন date.dayMonthYear.day, date.dayMonthYear.month, date.dayMonthYear.year।
— পল পিলেন

224

আপনি এখানে আছেন,

NSDate *currentDate = [NSDate date];
NSCalendar* calendar = [NSCalendar currentCalendar];
NSDateComponents* components = [calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:currentDate]; // Get necessary date components

 [components month]; //gives you month
 [components day]; //gives you day
 [components year]; // gives you year

আপনি উপরের মতো এর জন্য এনএসডিটকম্পোন্টগুলি ব্যবহার করতে পারেন।

বিস্তারিত জানার জন্য এই পৃষ্ঠাটি দেখুন।

আশা করি এটা সাহায্য করবে.


4
সঠিক উত্তরের জন্য কোড সরবরাহের জন্য +1। তবে আপনার উল্লেখ করা উচিত যে তথ্যটি এনএসডিটকম্পোনেন্টগুলি থেকে আসে, এনএসডিটফর্ম্যাটর নয়।
— কালো ফ্রগ

@ ব্ল্যাক এর জন্য ক্ষমা চাই আমার উত্তর আপডেট।
— জনক নির্মল

4
@ জনক নির্মল লিখুন নির্দিষ্ট পয়েন্ট হতে হবে আপনি কীভাবে দিন, মাস, বছরের জন্য স্ট্রিং ফর্ম্যাট পাবেন তা ব্যাখ্যা করতে পারেননি, কোনও ব্যবহারকারী বুঝতে পারেন নি।
— আনু

4
@ জনকনিরমালকে আপনার সঠিক মূল্য কীভাবে পাওয়া যায় তা ব্যাখ্যা করা উচিত।
— আনু

4
অবচয় হুঁশিয়ারি এড়ানোর জন্য: এনএসডিটকম্পোন্টস * উপাদানগুলি = [ক্যালেন্ডার উপাদান: এনএসক্যালেন্ডারউনিটইয়ার | এনএসক্যালেন্ডারউনিটমোনথ | এনএসক্যালেন্ডারউনিটডে থেকে তারিখ: বর্তমানের তারিখ];
— রডরিগো পিন্টো

17

হ্যাঁ এনএসক্যালেন্ডার ব্যবহার করে, যদিও আমি মনে করি এটি আপনার কাজটি করবে।

NSDateComponents *components = [[NSCalendar currentCalendar] components:NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit fromDate:[NSDate date]];
NSInteger day = [components day];    
NSInteger month = [components month];
NSInteger year = [components year];

9

এটি পাওয়ার জন্য আপনি এনএসডিটকম্পোন্টগুলি ব্যবহার করতে পারেন,

NSCalendar *calendar = [NSCalendar autoupdatingCurrentCalendar];
NSDate *currDate = [NSDate date];
NSDateComponents *dComp = [calendar components:( NSYearCalendarUnit | NSMonthCalendarUnit |  NSDayCalendarUnit ) 
                                      fromDate:currDate];

int day = [dComp day];
int month = [dComp month];
int year = [dComp year];

9

এটি একটি এক্সটেনশনে রাখুন এবং আপনার জীবনযাপন করুন 🍸🏖

extension Date{
    var day:Int {return Calendar.current.component(.day, from:self)}
    var month:Int {return Calendar.current.component(.month, from:self)}
    var year:Int {return Calendar.current.component(.year, from:self)}
}
Date().day//22
Date().month//4
Date().year//2017

সুইফট ৩.০ (এটি পূর্ববর্তী উত্তরের পুনরাবৃত্তি, তবে এটি আপনার ভবিষ্যতের সমস্ত অ্যাপ্লিকেশন প্রকল্পের জন্য সমাধান করে)


7

আমার মতো যারা সরাসরি ওয়েব থেকে অনুলিপি করে কপি করেন তাদের কাছে এটি iOS 8 এর জন্য একটি ছোট আপডেট

NSCalendar* calendar = [NSCalendar currentCalendar];
NSDateComponents* components = [calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:[NSDate date]];
[components day]; //Day
[components month];//Month
[components year];//Year

পার্থক্য NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay NSMonthCalendarUnit | NSDayCalendarUnit | NSYearCalendarUnit | NSWeekdayCalendarUnitহ্রাস করা হয়েছে


2

আপনি এটি চেষ্টা করতে পারেন .......

Mycal = [NSCalendar currentCalendar];
today = [NSDate date];
compA =[Mycal components:(NSMonthCalendarUnit | NSDayCalendarUnit | NSYearCalendarUnit | NSWeekdayCalendarUnit) fromDate:today];     
FirstDateofMonth=[today dateByAddingTimeInterval:([compA day]-1)*(-24*60*60)];

compA =[Mycal components:(NSMonthCalendarUnit | NSDayCalendarUnit | NSYearCalendarUnit | NSWeekdayCalendarUnit) fromDate:FirstDateofMonth];
today = FirstDateofMonth;
compA = [Mycal components:(NSMonthCalendarUnit | NSDayCalendarUnit | NSYearCalendarUnit | NSWeekdayCalendarUnit) fromDate:today];
[compA setMonth:([compA month])];
[self DrawMonthInPortraitView];
[compA retain];

1
NSDate *currentDate = [NSDate date];
NSCalendar* calendar = [NSCalendar currentCalendar];
NSDateComponents* components = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:currentDate]; // Get necessary date components

[components month]; //gives you month
[components day]; //gives you day
[components year]; // gives you year

NSString *temp=[NSString stringWithFormat:@"Months:%d Day:%d Year:%d",[components month],  [components day],[components year]];
NSLog(@"%@",temp);

1
let date = Date()
let calendar = Calendar.current

let year = calendar.component(.year, from: date)
let month = calendar.component(.month, from: date)
let day = calendar.component(.day, from: date)
print("hours = \(year):\(month):\(day)")

4
এই কোডটি প্রশ্নের উত্তর দিতে পারে, কেন এবং / অথবা এই কোডটির প্রশ্নের উত্তর কীভাবে তার দীর্ঘমেয়াদী মানকে উন্নত করে তা সম্পর্কিত অতিরিক্ত প্রসঙ্গ সরবরাহ করে।
— ডোনাল্ড ডাক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.