简体   繁体   中英

How to get first date of month?

I am working on get start and end date from today's date.

I am getting start and end date of current month by using formula given by Martin R

Get first and last day of month

It is working perfectly.

My issue is how to put my custom value in this line

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

Can I replace my custom month value to this code?

My requirement is:

I have one tableView for months like January, etc. When I will click TableView I am getting current month according to tableview.

Suppose I click on January, I will get value 1.

So how to get start and end date of month using my custom month value?

My Code

 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)

try this code:

    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));

Output:

01

I am answering my own question

temp number is month number like if January it will considered as 1.

plz go through this solution to get start and end date from custom values thanks @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)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM