2016-10-03 2 views
-2

ich diesen Code bin mit der Anzahl der Tage in der laufenden Woche zu bekommen:Wie die aktuelle Tagesnummer im laufenden Monat und Jahr erhalten

static func currentDayOfWeek() -> Int { 
    let comp = NSCalendar.current.dateComponents([.weekday], from: Date()) 
    if comp.weekday == 1 { 
     return 7 
    } 

    return comp.weekday! - 1 
} 

Monday = 1 
Tuesday = 2 
........... 
Sunday = 7 

Ich kann nicht, um herauszufinden, verwalten, wie das bekommen aktuelle Tagesnummer des Monats und des Jahres.

Zum Beispiel für heute sollte aktuelle Tagesnummer für den Monat 3 sein und für das Jahr sollte es 277 sein.

Irgendwelche Vorschläge?

+3

Tag des Jahres: http: //stackoverflow.com/questions/28712883/nsdate-day-of-the-year-swift – rmaddy

+0

Tag des Monats - holen Sie sich einfach die 'Day' Komponente. – rmaddy

+0

Denken Sie daran, Suche ist dein Freund. – rmaddy

Antwort

2
let dayYear = Calendar.current.ordinality(of: .day, in: .year, for: Date()) 

let dayMonth = Calendar.current.ordinality(of: .day, in: .month, for: Date()) 
0
func currentDayOfMonth()->Int { 
    return NSCalendar.currentCalendar().ordinalityOfUnit(NSCalendarUnit.Day, inUnit: NSCalendarUnit.Month, forDate: NSDate()) 
} 

func currentDayOfYear()->Int { 
    return NSCalendar.currentCalendar().ordinalityOfUnit(NSCalendarUnit.Day, inUnit: NSCalendarUnit.Year, forDate: NSDate()) 
} 
-1

Die ursprüngliche Antwort von this Post.

Dies wird zurückkehren „Montag“ oder den Tag der Woche:

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

    let weekdays = [1:"Sunday", 2:"Monday", 3:"Tuesday", 4:"Wednesday", 5:"Thursday", 6:"Friday", 7:"Saturday"] 

    let formatter = DateFormatter() 
    formatter.dateFormat = "MM-dd-yyyy" 
    if let todayDate = formatter.date(from: today) { 
     let myCalendar = Calendar(identifier: .gregorian) 
     let weekDay = myCalendar.component(.weekday, from: todayDate) 
     let day = weekdays[weekDay] 

     return day 
    } else { 
     return nil 
    } 
} 

getDayOfWeek("10-03-2016") 

Dies wird zurückkehren „1“ oder die Nummer des für die Woche:

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

    let formatter = DateFormatter() 
    formatter.dateFormat = "MM-dd-yyyy" 
    if let todayDate = formatter.date(from: today) { 
     let myCalendar = Calendar(identifier: .gregorian) 
     let weekDay = myCalendar.component(.weekday, from: todayDate) 

     return weekDay 
    } else { 
     return nil 
    } 
} 

getDayOfWeek("10-03-2016") 
+0

1) Die Frage fragte nicht, wie man den Wochentag erhält. 2) Die Frage hat nicht nach dem Parsen von Strings gefragt. 3) Die erste Methode hat ein Hardcode-Array von Wochentagsnamen in Englisch. Leute, die andere Sprachen benutzen, werden das nicht mögen. "DateFormatter" hat bereits eine Eigenschaft mit Wochentagsnamen in der entsprechenden Sprache für ein bestimmtes Gebietsschema. – rmaddy

Verwandte Themen