簡體   English   中英

如何獲得月份的第一個日期?

[英]How to get first date of month?

我正在研究從今天開始的開始和結束日期。

我正在使用Martin R給出的公式獲取本月的開始和結束日期

獲取每月的第一天和最后一天

運行良好。

我的問題是如何在此行中輸入我的自定義值

let components1 = calendar.components([.Year, .Month], fromDate: date)

我可以將我的自定義月份值替換為此代碼嗎?

我的要求是:

我有一個tableView可以使用一月等月份,等等。當我單擊TableView時,我將根據tableview獲得當前月份。

假設我單擊一月,我將獲得價值1。

那么如何使用我的自定義月份值獲取月份的開始和結束日期呢?

我的密碼

 let date = NSDate()
        let calendar   = NSCalendar.currentCalendar()
        let dateFormatter = NSDateFormatter()
        dateFormatter.dateFormat = "dd MM yyyy"

        //To Get Start Date of Month
        let components1  = calendar.components([.Year,.Day], fromDate: date)
        components1.month = 3
        let startOfMonth = calendar.dateFromComponents(components1)!
        txtStartDate.text = dateFormatter.stringFromDate(startOfMonth)

試試這個代碼:

    let calendar = NSCalendar.currentCalendar()
    let date = "January 2016" // custom value
    let dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "MMMM yyyy"

    let components = calendar.components([.Year, .Month, .Day], fromDate: dateFormatter.dateFromString(date)!)
    let startOfMonth = calendar.dateFromComponents(components)!
    dateFormatter.dateFormat = "MM"
    print(dateFormatter.stringFromDate(startOfMonth))
    //NSLog("%@ : %@", startOfMonth,dateFormatter.stringFromDate(startOfMonth));

輸出:

01

我在回答我自己的問題

臨時號是月份號,例如1月將被視為1。

請通過此解決方案從自定義值獲取開始和結束日期,謝謝@Martin R

let calendar   = NSCalendar.currentCalendar()

        let dateFormatter = NSDateFormatter()
        dateFormatter.dateFormat = "dd MM yyyy"

        //To Get Start Date of Month
        let components1 = calendar.components([.Year], fromDate: NSDate())
        components1.month = Int(tempNumber!)!
        let startOfMonth = calendar.dateFromComponents(components1)!
        txtStartDate.text = dateFormatter.stringFromDate(startOfMonth)

        //To Get End Date of Month
        let comps2 = NSDateComponents()
        comps2.month =  1
        comps2.day   = -1
        let endOfMonth = calendar.dateByAddingComponents(comps2, toDate: startOfMonth, options: [])!
        txtEndDate.text = dateFormatter.stringFromDate(endOfMonth)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM