এনএসডিট ব্যবহার করে সপ্তাহের দিন পান


90

আমি এমন একটি পদ্ধতি তৈরি করেছি যা "YYYY-MM-DD" ফর্মের স্ট্রিংয়ের মধ্যে নেওয়ার কথা রয়েছে এবং যে সপ্তাহে এটি রয়েছে তার সাথে তারিখের অবস্থানটি উপস্থাপন করে এমন একটি প্রারম্ভিক থুথু ফেলেছে (নির্বিশেষে যদি এটি কয়েক মাসের মধ্যে ওভারল্যাপ হয় তবে)। সুতরাং যেমন রবিবার = 1 সোমবার = 2 এবং আরও।

আমার কোডটি এখানে:

    func getDayOfWeek(today:String)->Int{

    var formatter:NSDateFormatter = NSDateFormatter()
    formatter.dateFormat = "YYYY-MM-DD"
    var todayDate:NSDate = formatter.dateFromString(today)!
    var myCalendar:NSCalendar = NSCalendar(calendarIdentifier: NSGregorianCalendar)
    var myComponents = myCalendar.components(NSCalendarUnit.WeekdayOrdinalCalendarUnit, fromDate: todayDate)
    var weekDay = myComponents.weekdayOrdinal
    return weekDay
}

আমি জানি যে NSCalendarUnit.WeekdayOrdinalCalendarএটি ভুল তবে আমি চেষ্টা করেছি বেশিরভাগ যৌক্তিক সমন্বয়গুলি। এবং এছাড়াও নিয়ে তছনছ করেছে myComponents.weekdayOrdinalব্যবহৃত উদাঃ mycomponents.dayবা .weekday

এখানে কী ব্যবহার করবেন সে সম্পর্কে আমার বিকল্পগুলি:

static var EraCalendarUnit: NSCalendarUnit { get }
static var YearCalendarUnit: NSCalendarUnit { get }
static var MonthCalendarUnit: NSCalendarUnit { get }
static var DayCalendarUnit: NSCalendarUnit { get }
static var HourCalendarUnit: NSCalendarUnit { get }
static var MinuteCalendarUnit: NSCalendarUnit { get }
static var SecondCalendarUnit: NSCalendarUnit { get }
static var WeekCalendarUnit: NSCalendarUnit { get }
static var WeekdayCalendarUnit: NSCalendarUnit { get }
static var WeekdayOrdinalCalendarUnit: NSCalendarUnit { get }
static var QuarterCalendarUnit: NSCalendarUnit { get }
static var WeekOfMonthCalendarUnit: NSCalendarUnit { get }
static var WeekOfYearCalendarUnit: NSCalendarUnit { get }
static var YearForWeekOfYearCalendarUnit: NSCalendarUnit { get }
static var CalendarCalendarUnit: NSCalendarUnit { get }
static var TimeZoneCalendarUnit: NSCalendarUnit { get }

DayOfWeekUnit বিকল্প (বা অনুরূপ কিছু) নেই বলে এটি আমার কাছে পরিষ্কার নয়।


4
দেখুন: অক্ষর বিন্যাসের জন্য আইসিইউ ফর্ম্যাট করার তারিখ এবং টাইমস
জাফ


4
@ সুহাইব আপনি যদি আমার ট্যাগগুলি দেখেন তবে এটিতে বলা হয় সুইফট নট অবজেক্টিভ সি- এছাড়াও কোডটি সুইফ্ট ২-এ রয়েছে
বোডকান

নীচের "EEEE" আপনার তারিখের ফর্ম্যাটারে চেষ্টা করুন
আলেকজান্দ্রোস

উত্তর:


118

আপনি যা খুঁজছেন তা (যদি আমি প্রশ্নটি সঠিকভাবে বুঝতে পারি) তা NSCalendarUnit.CalendarUnitWeekday। সংশ্লিষ্ট সম্পত্তি NSDateComponentsহল weekday

আপনার তারিখের ফর্ম্যাটটিও ভুল (সম্পূর্ণ স্পেসিফিকেশনটি এখানে পাওয়া যাবে: http://unicode.org/report/tr35/tr35-6.html )।

স্বয়ংক্রিয় টাইপ অনুমিতি ব্যবহার করে ফাংশনটি কিছুটা সরল করা যায়, আপনি যেখানে ভেরিয়েবলগুলি যথেষ্ট সেখানে ব্যবহার করেন। উপরন্তু, ফাংশনটি একটি anচ্ছিক যা ফিরে আসতে হবেnil একটি অবৈধ ইনপুট স্ট্রিংয়ের জন্য।

সুইফট 3 এবং পরবর্তীটির জন্য আপডেট হওয়া কোড :

func getDayOfWeek(_ today:String) -> Int? {
    let formatter  = DateFormatter()
    formatter.dateFormat = "yyyy-MM-dd"
    guard let todayDate = formatter.date(from: today) else { return nil }
    let myCalendar = Calendar(identifier: .gregorian)
    let weekDay = myCalendar.component(.weekday, from: todayDate)
    return weekDay
}

উদাহরণ:

if let weekday = getDayOfWeek("2014-08-27") {
    print(weekday)
} else {
    print("bad input")
}

সুইফট 2 এর মূল উত্তর :

func getDayOfWeek(today:String)->Int? {

    let formatter  = NSDateFormatter()
    formatter.dateFormat = "yyyy-MM-dd"
    if let todayDate = formatter.dateFromString(today) {
        let myCalendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)!
        let myComponents = myCalendar.components(.Weekday, fromDate: todayDate)
        let weekDay = myComponents.weekday
        return weekDay
    } else {
        return nil
    }
}

হ্যাঁ এটি ফর্ম্যাটটি যা আমাকে জড়িয়েছিল। আমি সপ্তাহের দিনক্যালেন্ডারউনিট চেষ্টা করার সময় 4 এর পরিবর্তে 2 পেয়ে যাচ্ছিলাম এবং খুব বিভ্রান্ত হয়েছিলাম! লিঙ্কটির জন্য ধন্যবাদ, আমি এটি পড়তে হবে।
বোয়দকান

4
আমি জানি এটি মূল প্রশ্নের অংশ নয়, তবে তারিখে পাস করা তারিখটি সঠিক ফর্ম্যাটে নয় বা কোনওভাবে অবৈধ নয় এমন ক্ষেত্রে optionচ্ছিক ইনট ফিরিয়ে দেওয়া ভাল জায়গা হবে।
মাইক এস

4
এটা হওয়া উচিত নয় func getDayOfWeek(today:String)->Int?। আপনি যদি জোর করে wচ্ছিকভাবে এটি ?চ্ছিকভাবে আবদ্ধ করেন তবে এটি ক্রাশ হয়ে যায়, তাই না?
রয়েছে

4
@ হাস: আপনি পুরোপুরি ঠিক বলেছেন, ধন্যবাদ! - এটি আমার পরীক্ষার ক্ষেত্রে ক্রাশ হয়নি কারণ if let ...alচ্ছিক অ্যাসাইনমেন্ট সুস্পষ্টভাবে মোড়কযুক্ত বিকল্পগুলির সাথেও কাজ করে।
মার্টিন আর

4
আপনাকে ধন্যবাদ মার্টিং এর জন্য, আপনার উত্তরটিকে আরও সুন্দর করে তুলতে আপনি এটি সম্পাদনা করতে পারবেন সুইফট 2 কোডটি সরিয়ে এবং সুইফট 3 কোডটি রাখতে। তারপরে শেষে একটি নোট যুক্ত করুন: "আপনার যদি সুইফট 2 এর জন্য কোডের প্রয়োজন হয় তবে পূর্ববর্তী সম্পাদনাটি পরীক্ষা করুন" বা এর মতো কিছু
সুহাইব

155

সুইফট 3 এবং 4

সপ্তাহের দিনটির পুনরুদ্ধারটি সুইফট 3 এ নাটকীয়ভাবে সরল করা হয়েছে কারণ DateComponentsএটি আর optionচ্ছিক নয়। এখানে এটি একটি এক্সটেনশন হিসাবে রয়েছে:

extension Date {
    func dayNumberOfWeek() -> Int? {
        return Calendar.current.dateComponents([.weekday], from: self).weekday 
    }
}

// returns an integer from 1 - 7, with 1 being Sunday and 7 being Saturday
print(Date().dayNumberOfWeek()!) // 4

আপনি যদি সপ্তাহের দিনের লিখিত, স্থানীয় সংস্করণটি সন্ধান করতেন:

extension Date {
    func dayOfWeek() -> String? {
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "EEEE"
        return dateFormatter.string(from: self).capitalized 
        // or use capitalized(with: locale) if you want
    }
}

print(Date().dayOfWeek()!) // Wednesday

4
যদি আপনি aDate.dayOfWeek () ব্যবহারের অধীনে রাখেন তবে এটি আরও স্পষ্ট হবে।
বোডকান

4
নোট করুন যে প্রশ্নটি ছিল "ওয়াইওয়াইওয়াই-এমএম-ডিডি" ফর্মের স্ট্রিং থেকে কীভাবে সপ্তাহের দিনটি পাবেন । আপনার যদি ইতিমধ্যে কোনও এনএসডিট থাকে তবে অবশ্যই এটি সরল করে।
মার্টিন আর

4
আপনি এটি উদাহরণস্বরূপ ব্যবহার করে থাকেন তবে এটি সম্ভবত উল্লেখ করার মতো। টেবিল ভিউ, এটি স্ক্রোলিংকে কমিয়ে দিতে পারে, কারণ ডেটফরম্যাটর তৈরি করা বেশ ব্যয়বহুল। আপনি যদি এটি খুব ঘন ঘন ব্যবহার করতে থাকেন তবে এটি উদাহরণস্বরূপ ভাল। একটি উদাহরণ তৈরি করুন এবং সমস্ত ফাংশন কলগুলিতে গণনার সময় এটি সরবরাহ করুন।
25:48

একেবারে। সেক্ষেত্রে এমনকি এমন একটি অ্যারে হ্যান্ডলারও রয়েছে যেখানে আপনি কোনও অ্যারের উপরে ফাংশনটি চালাতে পারবেন দরকারী।
ব্র্যান্ডসক্রিপ্ট

4
সহজ নীচের নীচে @ ডেভিড 72 এর উত্তর হবে: ক্যালেন্ডার.সি.কম.কম্পেন্ট (। উইকডে, থেকে: তারিখ ())
অ্যাডাম স্মাকা

37

আপনি যদি পুরো "রবিবার", "সোমবার", "মঙ্গলবার", "বুধবার" ইত্যাদি চান তবে

সম্পাদনা: প্রকৃতপক্ষে একটি বিল্ট ফর্ম্যাট রয়েছে যা স্থানীয়করণের দিনের নাম দেয়:

extension NSDate {
    func dayOfTheWeek() -> String? {        
        let dateFormatter = NSDateFormatter()
        dateFormatter.dateFormat = "EEEE"
        return dateFormatter.stringFromDate(self)
    }
}

আমার পূর্ববর্তী সমাধান (কেবল ইংরেজির জন্য):

extension NSDate {

    func dayOfTheWeek() -> String? {
        let weekdays = [
            "Sunday",
            "Monday",
            "Tuesday",
            "Wednesday",
            "Thursday",
            "Friday",
            "Saturday"
        ]

        let calendar: NSCalendar = NSCalendar.currentCalendar()
        let components: NSDateComponents = calendar.components(.Weekday, fromDate: self)
        return weekdays[components.weekday - 1]
    }
}

আপনার ক্যালেন্ডার এবং উপাদানগুলি আন-মোড়ের দরকার নেই, এগুলি ফাউন্ডেশনের কাঠামোর দ্বারা গ্যারান্টিযুক্ত।

ব্যবহার:

print(myDate.dayOfTheWeek())

4
EEEEE এবং EEEEE আপনাকে দিনের সংক্ষিপ্ত রূপ দেয়, যেমন বুধ, থ, ফ্র
মাতজন

4
অথবা পুরোপুরি একটি ডেটফরম্যাটর তৈরি এড়াতে ক্যালেন্ডারের শর্ট উইকডে সিম্বলস বৈশিষ্ট্যটি ব্যবহার করুন।
মাইকেপজ


11

আমার ক্ষেত্রে আমি প্রতিটি দিনের জন্য তিনটি অক্ষরের স্ট্রিং পরে ছিল। আমি @ মার্টিন আর এর ক্রিয়াকলাপটি নিম্নরূপে সংশোধন করেছি:

func getDayOfWeekString(today:String)->String? {
    let formatter  = NSDateFormatter()
    formatter.dateFormat = "yyyy-MM-dd"
    if let todayDate = formatter.dateFromString(today) {
        let myCalendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)!
        let myComponents = myCalendar.components(.Weekday, fromDate: todayDate)
        let weekDay = myComponents.weekday
        switch weekDay {
        case 1:
            return "Sun"
        case 2:
            return "Mon"
        case 3:
            return "Tue"
        case 4:
            return "Wed"
        case 5:
            return "Thu"
        case 6:
            return "Fri"
        case 7:
            return "Sat"
        default:
            print("Error fetching days")
            return "Day"
        }
    } else {
        return nil
    }
}

4
আপনি EEE হিসাবে হিসাবে ব্যবহার করতে পারেনdateFormat
mrvincenzo

10

একটি সহজ উপায় আছে। কেবলমাত্র আপনার স্ট্রিংয়ের তারিখটি নিম্নলিখিত ফাংশনে পাস করুন, এটি আপনাকে দিনের নাম দেবে :)

func getDayNameBy(stringDate: String) -> String
    {
        let df  = NSDateFormatter()
        df.dateFormat = "YYYY-MM-dd"
        let date = df.dateFromString(stringDate)!
        df.dateFormat = "EEEE"
        return df.stringFromDate(date);
    }

4
"EEE" খুঁজছিলেন। ধন্যবাদ
anoo_radha

9
extension Date {

var weekdayName: String {
    let formatter = DateFormatter(); formatter.dateFormat = "E"
    return formatter.string(from: self as Date)
}

var weekdayNameFull: String {
    let formatter = DateFormatter(); formatter.dateFormat = "EEEE"
    return formatter.string(from: self as Date)
}
var monthName: String {
    let formatter = DateFormatter(); formatter.dateFormat = "MMM"
    return formatter.string(from: self as Date)
}
var OnlyYear: String {
    let formatter = DateFormatter(); formatter.dateFormat = "YYYY"
    return formatter.string(from: self as Date)
}
var period: String {
    let formatter = DateFormatter(); formatter.dateFormat = "a"
    return formatter.string(from: self as Date)
}
var timeOnly: String {
    let formatter = DateFormatter(); formatter.dateFormat = "hh : mm"
    return formatter.string(from: self as Date)
}
var timeWithPeriod: String {
    let formatter = DateFormatter(); formatter.dateFormat = "hh : mm a"
    return formatter.string(from: self as Date)
}

var DatewithMonth: String {
    let formatter = DateFormatter(); formatter.dateStyle = .medium ;        return formatter.string(from: self as Date)
}
}

ব্যবহার সপ্তাহের দিন = তারিখ () দিন


8

সুইফট 3 তারিখের এক্সটেনশন

extension Date {
    var weekdayOrdinal: Int {
        return Calendar.current.component(.weekday, from: self)
    }
}

আমি আপনার উত্তরে একটি গুরুত্বপূর্ণ পয়েন্ট যুক্ত করেছি, যা এখানে আপ টু ডেট উত্তর। আপনার পছন্দ না হলে অবশ্যই আনাইন্ডিং মুক্ত মনে করুন! :) চিয়ার্স
ফ্যাটি

প্রশ্ন একটি পূর্ণসংখ্যা জন্য জিজ্ঞাসা
quemeful

6

আপনার তারিখটি বিভিন্ন ফর্ম্যাটে রূপান্তর করার জন্য আপনি এই টেবিলের তারিখ_ফর্ম্যাটগুলি ব্যবহার করতে পারেন । আমার সংক্ষিপ্ততম কোড:

func getDayOfWeek(today: String) -> Int{
    let formatter:NSDateFormatter = NSDateFormatter()
    formatter.dateFormat = "yyyy-MM-dd"
    let todayDate = formatter.dateFromString(today)
    formatter.dateFormat = "e" // "eeee" -> Friday
    let weekDay = formatter.stringFromDate(todayDate!)
    return Int(weekDay)!
}
getDayOfWeek("2015-12-18") // 6

আপনাকে অনেক ধন্যবাদ ধন্যবাদ আমি এটি ফর্ম্যাটারের জন্য খুঁজছিলাম।ডেটফর্ম্যাট = "আইইই" // "আইইই" -> শুক্রবার
মোহাম্মদ আবুনদা

4

সুইফট 5 - সপ্তাহের দিন

    extension Date {

        var dayofTheWeek: String {
             let dayNumber = Calendar.current.component(.weekday, from: self)
             // day number starts from 1 but array count from 0
             return daysOfTheWeek[dayNumber - 1]
        }

        private var daysOfTheWeek: [String] {
             return  ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
        }
     }

ফেটির উত্তরের ভিত্তিতে তারিখের বর্ধিতাংশ


3

ব্যবহারিক সমাধান ...

সতর্কতা অবলম্বন করুন যে ফলাফলগুলি সাতের মধ্য দিয়ে পূর্ণসংখ্যা হয়।

(ছয় মাধ্যমে শূন্য নয়।)

let trivialDayStringsORDINAL = ["", "SUN","MON","TUE","WED","THU","FRI","SAT"]
// note that zero is not used

এবং তারপর ...

let dow = Calendar.current.component(.weekday, from: someDate)
print( trivialDayStringsORDINAL[dow] )

3

এখানে ইতিমধ্যে এখানে প্রচুর উত্তর রয়েছে তবে আমি মনে করি অন্য একটি, সম্ভবত আরও ভাল, সঠিক CalendarAPI ব্যবহার করে এটি করার উপায় ।

আমি সপ্তাহের দিনটি একটি এক্সটেনশনে ( ডক্স ) এর weekdaySymbolsসম্পত্তি ব্যবহার করে পরামর্শ দেব :CalendarDate

extension Date {

    /// Returns the day of the week as a `String`, e.g. "Monday"
    var dayOfWeek: String {
        let calendar = Calendar.autoupdatingCurrent
        return calendar.weekdaySymbols[calendar.component(.weekday, from: self) - 1]
    }
}

এটির জন্য Dateপ্রথমটি শুরু করা দরকার যা আমি একটি কাস্টম ব্যবহার করে করব DateFormatter:

extension DateFormatter {

    /// returns a `DateFormatter` with the format "yyyy-MM-dd".
    static var standardDate: DateFormatter {
        let formatter = DateFormatter()
        formatter.dateFormat = "yyyy-MM-dd"
        return formatter
    }
}

এরপরে এগুলি দিয়ে বলা যেতে পারে:

DateFormatter.standardDate.date(from: "2018-09-18")!.dayOfWeek

আমি এটিকে কেন পছন্দ করি:

  1. dayOfWeek ব্যবহারকারীর ক্যালেন্ডার ব্যবহৃত হওয়ায় সময় অঞ্চলগুলি সম্পর্কে যত্ন নেওয়ার দরকার নেই, এখানে অন্যান্য কিছু সমাধানের জন্য ভুল দিনটি দেখানো হবে কারণ সময় অঞ্চলগুলি বিবেচনা করা হয়নি।
  2. এটি খুব সম্ভবত যে আপনি অন্যান্য স্থানে একই ফর্ম্যাটে তারিখগুলি ব্যবহার করতে হবে তাই আপনি কেন পুনরায় ব্যবহারযোগ্য তৈরি করতে DateFormatterএবং তার পরিবর্তে তা ব্যবহার করবেন না?
  3. weekdaySymbols আপনার জন্য স্থানীয় করা হয়েছে।
  4. weekDaySymbolsshortWeekdaySymbols"সোম", "মঙ্গল" ইত্যাদির মতো অন্যান্য বিকল্পগুলির সাথে প্রতিস্থাপন করা যেতে পারে

দয়া করে নোট করুন: এই উদাহরণটি DateFormatterসময় অঞ্চল বা লোকেলগুলিও বিবেচনা করে না, আপনার যা প্রয়োজন তার জন্য আপনাকে সেগুলি সেট করতে হবে। যদি তারিখগুলি সর্বদা সুনির্দিষ্ট থাকে তবে সময় অঞ্চল নির্ধারণ বিবেচনা করুন TimeZone(secondsFromGMT: 0)


4
অবাক করা বিষয় যে এটিই কেবলমাত্র উত্তর যা উল্লেখ করেছে weekdaySymbols, ধন্যবাদ
ফ্যাটি

1

আমি সপ্তাহের তারিখ (যেমন "5 তম") এবং বছরের মাস (যেমন আগস্ট) সহ তারিখ থেকে আরও কয়েকটি স্ট্রিংয়ের প্রয়োজন শেষ করেছি। নীচে আমি তিনটি ফাংশন নীচে তৈরি করেছি যা আমি @ মার্টিন আর এর ফাংশনের উপর ভিত্তি করে তৈরি করেছি এবং 3 টি চর স্ট্রিং ফিরিয়ে আনতে সংশোধন করেছি:

//Date String Helper Functions
func getDayOfWeek(today:String)->String? {
    let formatter  = NSDateFormatter()
    formatter.dateFormat = "yyyy-MM-dd"
    if let todayDate = formatter.dateFromString(today) {
        let myCalendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)!
        let myComponents = myCalendar.components(.Weekday, fromDate: todayDate)
        let weekDay = myComponents.weekday
        switch weekDay {
        case 1:
            return "Sun"
        case 2:
            return "Mon"
        case 3:
            return "Tue"
        case 4:
            return "Wed"
        case 5:
            return "Thu"
        case 6:
            return "Fri"
        case 7:
            return "Sat"
        default:
            print("Error fetching days")
            return "Day"
        }
    } else {
        return nil
    }
}

func getDateOfMonth(today:String)->String? {
    let formatter  = NSDateFormatter()
    formatter.dateFormat = "yyyy-MM-dd"
    if let todayDate = formatter.dateFromString(today) {
        let myCalendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)!
        let myComponents = myCalendar.components(.Day, fromDate: todayDate)
        let weekDay = myComponents.day
        switch weekDay {
        case 1:
            return "1st"
        case 2:
            return "2nd"
        case 3:
            return "3rd"
        case 4:
            return "4th"
        case 5:
            return "5th"
        case 6:
            return "6th"
        case 7:
            return "7th"
        case 8:
            return "8th"
        case 9:
            return "9th"
        case 10:
            return "10th"
        case 11:
            return "11th"
        case 12:
            return "12th"
        case 13:
            return "13th"
        case 14:
            return "14th"
        case 15:
            return "15th"
        case 16:
            return "16th"
        case 17:
            return "17th"
        case 18:
            return "18th"
        case 19:
            return "19th"
        case 20:
            return "20th"
        case 21:
            return "21st"
        case 22:
            return "22nd"
        case 23:
            return "23rd"
        case 24:
            return "24th"
        case 25:
            return "25th"
        case 26:
            return "26th"
        case 27:
            return "27th"
        case 28:
            return "28th"
        case 29:
            return "29th"
        case 30:
            return "30th"
        case 31:
            return "31st"
        default:
            print("Error fetching Date Of Month")
            return "Day"
        }
    } else {
        return nil
    }
}

func getMonthOfYear(today:String)->String? {
    let formatter  = NSDateFormatter()
    formatter.dateFormat = "yyyy-MM-dd"
    if let todayDate = formatter.dateFromString(today) {
        let myCalendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)!
        let myComponents = myCalendar.components(.Month, fromDate: todayDate)
        let month = myComponents.month
        switch month {
        case 1:
            return "Jan"
        case 2:
            return "Feb"
        case 3:
            return "Mar"
        case 4:
            return "Apr"
        case 5:
            return "May"
        case 6:
            return "Jun"
        case 7:
            return "Jul"
        case 8:
            return "Aug"
        case 9:
            return "Sep"
        case 10:
            return "Oct"
        case 11:
            return "Nov"
        case 12:
            return "Dec"
        default:
            print("Error fetching months")
            return "Month"
        }
    } else {
        return nil
    }
}

1

সোমবার থেকে শুরু করে চলতি সপ্তাহটি উপস্থাপনের জন্য সুইফট ২.০ কোড।

@ আইবিএ ফাংশন শো (প্রেরক: যেকোনওজেক্ট) {

   // Getting Days of week corresponding to their dateFormat

    let calendar = NSCalendar.currentCalendar()
    let dayInt: Int!
    var weekDate: [String] = []
    var i = 2

    print("Dates corresponding to days are")
    while((dayInt - dayInt) + i < 9)
    {
        let weekFirstDate = calendar.dateByAddingUnit(.Day, value: (-dayInt+i), toDate: NSDate(), options: [])
        let dateFormatter = NSDateFormatter()
        dateFormatter.dateFormat = "EEEE dd MMMM"
        let dayOfWeekString = dateFormatter.stringFromDate(weekFirstDate!)
        weekDate.append(dayOfWeekString)
        i++
    }
    for i in weekDate
    {
        print(i) //Printing the day stored in array
    }
}

// function to get week day
func getDayOfWeek(today:String)->Int {

    let formatter  = NSDateFormatter()
    formatter.dateFormat = "MMM-dd-yyyy"
    let todayDate = formatter.dateFromString(today)!
    let myCalendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)!
    let myComponents = myCalendar.components(.Weekday, fromDate: todayDate)
    let weekDay = myComponents.weekday
    return weekDay
}


@IBAction func DateTitle(sender: AnyObject) {


    // Getting currentDate and weekDay corresponding to it
    let currentDate = NSDate()
    let dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "MMM-dd-yyyy"
    let dayOfWeekStrings = dateFormatter.stringFromDate(currentDate)
    dayInt = getDayOfWeek(dayOfWeekStrings)

}

1

এই কোডটি পুরো বর্তমান সপ্তাহটি খুঁজে পেতে হবে। এটি সুইফট ২.০ তে লেখা হয়েছে:

var i = 2
var weekday: [String] = []
var weekdate: [String] = []
var weekmonth: [String] = []

@IBAction func buttonaction(sender: AnyObject) {

    let currentDate = NSDate()
    let dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "MMM-dd-yyyy"
    let dayOfWeekStrings = dateFormatter.stringFromDate(currentDate)
    let weekdays = getDayOfWeek(dayOfWeekStrings)
    let calendar = NSCalendar.currentCalendar()

    while((weekdays - weekdays) + i < 9)
    {
        let weekFirstDate = calendar.dateByAddingUnit(.Day, value: (-weekdays+i), toDate: NSDate(), options: [])

        let dayFormatter = NSDateFormatter()
        dayFormatter.dateFormat = "EEEE"
        let dayOfWeekString = dayFormatter.stringFromDate(weekFirstDate!)
        weekday.append(dayOfWeekString)

        let dateFormatter = NSDateFormatter()
        dateFormatter.dateFormat = "dd"
        let dateOfWeekString = dateFormatter.stringFromDate(weekFirstDate!)
        weekdate.append(dateOfWeekString)

        let monthFormatter = NSDateFormatter()
        monthFormatter.dateFormat = "MMMM"
        let monthOfWeekString = monthFormatter.stringFromDate(weekFirstDate!)
        weekmonth.append(monthOfWeekString)

        i++
    }

    for(var j = 0; j<7 ; j++)
    {
    let day = weekday[j]
    let date = weekdate[j]
    let month = weekmonth[j]
    var wholeweek = date + "-" + month + "(" + day + ")"
    print(wholeweek)
    }

}

func getDayOfWeek(today:String)->Int {
    let formatter  = NSDateFormatter()
    formatter.dateFormat = "MMM-dd-yyyy"
    let todayDate = formatter.dateFromString(today)!
    let myCalendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)!
    let myComponents = myCalendar.components(.Weekday, fromDate: todayDate)
    let daynumber = myComponents.weekday
    return daynumber
}

আউটপুটটি এরকম হবে:

14 মার্চ (সোমবার) 15 মার্চ (মঙ্গলবার) 16 মার্চ (বুধবার) 17 মার্চ (বৃহস্পতিবার) 18 মার্চ (শুক্রবার) 19 মার্চ (শনিবার) 20 মার্চ (রবিবার)


1

সুইফট 3: এক্সকোড 8 সহায়ক ফাংশন:

func getDayOfWeek(fromDate date: Date) -> String? {
    let cal = Calendar(identifier: .gregorian)
    let dayOfWeek = cal.component(.weekday, from: date)
    switch dayOfWeek {
     case 1:
        return "Sunday"
    case 2:
        return "Monday"
    case 3:
        return "Tuesday"
    case 4:
        return "Wednesday"
    case 5:
        return "Thursday"
    case 6:
        return "Friday"
    case 7:
        return "Saturday"
    default:
        return nil
    }
}

4
এটি স্থানীয় নয়।
আলেকজান্ডার - মনিকা পুনরায়

0

সুইফট 4 এর জন্য স্ট্রিং থেকে সপ্তাহের দিন পান

   func getDayOfWeek(today:String)->Int {
        let formatter  = DateFormatter()
        formatter.dateFormat = "yyyy-MM-dd"
        let todayDate = formatter.date(from: today)!
        let myCalendar = NSCalendar(calendarIdentifier: NSCalendar.Identifier.gregorian)!
        let myComponents = myCalendar.components(NSCalendar.Unit.weekday, from: todayDate)
        let weekDay = myComponents.weekday
        return weekDay!
    }

let weekday = getDayOfWeek(today: "2018-10-10")
print(weekday) // 4

এটি স্ট্যাকওভারফ্লো . com/a/25533357/1187415 এ প্রথম পদ্ধতির থেকে কীভাবে আলাদা ?
মার্টিন আর
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.