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


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.