繁体   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