如何获得第一个月的日期?

时间:2016-09-09 12:59:45

标签: ios swift datetime

我正在努力从今天起开始和结束日期。

我通过使用获得当月的开始和结束日期 由Martin R给出的公式

Get first and last day of month

它运作良好。

我的问题是如何将我的自定义值放在此行

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

我可以将自定义月份值替换为此代码吗?

我的要求是:

我有一个像几月一样的tableView,等等。 当我点击TableView时,我会根据tableview获得当前月份。

假设我点击1月,我将获得价值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)

2 个答案:

答案 0 :(得分:0)

试试这段代码:

    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 :(得分:0)

我正在回答我自己的问题

临时号码是月份号码,如果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)