Swift 阳历转农历,农历转公历

一,公历转农历

  公历转农历比较简单,使用系统的Calendar 就可以做到。

//MARK:- 公历转农历
    func solarToLunar(year: Int, month: Int, day: Int) -> String {
        //初始化公历日历
        let solarCalendar = Calendar.init(identifier: .gregorian)
        var components = DateComponents()
        components.year = year
        components.month = month
        components.day = day
        components.hour = 12
        components.minute = 0
        components.second = 0
        components.timeZone = TimeZone.init(secondsFromGMT: 60 * 60 * 8)
        let solarDate = solarCalendar.date(from: components)
        
        //初始化农历日历
        let lunarCalendar = Calendar.init(identifier: .chinese)
        //日期格式和输出
        let formatter = DateFormatter()
        formatter.locale = Locale(identifier: "zh_CN")
        formatter.dateStyle = .medium
        formatter.calendar = lunarCalendar
        return formatter.string(from: solarDate!)
    }

 调用

打印

 

 

二,农历转公历

  农历转公历稍微复杂一些

posted @ 2018-10-10 17:14  黄啊  阅读(893)  评论(0编辑  收藏  举报