【发布时间】:2015-12-17 08:09:39
【问题描述】:
在过去的 100 年里,我已经编写了获取中国历法一年中的第一天的函数。从循环返回的一些值是正确的。我已经用这个链接http://www.fengshuimiracle.com/154/how-work-out-your-animal-sign-and-chinese-year验证了农历新年日期 .是否有可以参考的农历或者我的代码中缺少某些内容。
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
loopthrough()
}
func returnDateForMonth(month:NSInteger, year:NSInteger, day:NSInteger)->NSDate{
let comp = NSDateComponents()
comp.month = month
comp.year = year
comp.day = day
let chCal = NSCalendar(calendarIdentifier: NSCalendarIdentifierChinese)
return chCal!.dateFromComponents(comp)!
}
func showDate(getDate:NSDate)->String{
let date = getDate
//let calendar = NSCalendar.currentCalendar()
let calendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierChinese)
let dateComponents = calendar!.components([NSCalendarUnit.Year], fromDate: date)
let firstDay = returnDateForMonth(dateComponents.month, year: dateComponents.year, day: 1)
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd-MMM-yy"
let formattedDate = dateFormatter.stringFromDate(firstDay)
//print("First day of this month: \(formattedDate)") // 01-Sep-15
print(formattedDate)
return formattedDate
}
func substractyear(getI:Int)->String{
let getInt = getI * -1
let components: NSDateComponents = NSDateComponents()
components.setValue(getInt, forComponent: NSCalendarUnit.Year);
let date: NSDate = NSDate()
let expirationDate = NSCalendar.currentCalendar().dateByAddingComponents(components, toDate: date, options:NSCalendarOptions(rawValue: 0))
return showDate(expirationDate!)
}
func loopthrough(){
for var i = 1; i < 100; i++ {
//print("\(i)")
substractyear(i)
}
}
输出
2014 年 1 月 31 日 2013 年 2 月 10 日 2012 年 1 月 23 日 2011 年 2 月 3 日 2010 年 2 月 14 日 2009 年 1 月 26 日 08 年 2 月 7 日 2007 年 2 月 18 日 2006 年 1 月 29 日 05 年 2 月 9 日 2004 年 1 月 22 日 03 年 2 月 1 日 2002 年 2 月 12 日 2001 年 1 月 24 日 00 年 2 月 5 日 99 年 2 月 16 日 98 年 1 月 28 日 97 年 2 月 7 日 96 年 2 月 19 日 95 年 1 月 31 日 94 年 2 月 10 日 93 年 1 月 23 日 92 年 2 月 4 日 91 年 2 月 15 日 90 年 1 月 27 日 89 年 2 月 6 日 88 年 2 月 17 日 87 年 1 月 29 日 86 年 2 月 9 日 85 年 2 月 20 日 84 年 2 月 2 日 43 年 2 月 10 日 42 年 1 月 22 日 41 年 2 月 1 日 40 年 2 月 12 日 39 年 1 月 24 日 38 年 2 月 4 日 37 年 2 月 15 日 36 年 1 月 28 日 35 年 2 月 8 日 34 年 2 月 19 日 33 年 1 月 31 日 32 年 2 月 11 日 31 年 1 月 23 日 30 年 2 月 3 日 29 年 2 月 13 日 28 年 1 月 26 日 27 年 2 月 6 日 26 年 2 月 17 日 25 年 1 月 29 日 24 年 2 月 10 日 23 年 1 月 22 日 22 年 2 月 1 日 21 年 2 月 12 日 20 年 1 月 25 日 2019 年 2 月 5 日 18 年 2 月 16 日 2017 年 1 月 28 日 2016 年 2 月 8 日 2015 年 2 月 19 日 2014 年 1 月 31 日 2013 年 2 月 10 日 2012 年 1 月 23 日 2011 年 2 月 3 日 2010 年 2 月 14 日 2009 年 1 月 26 日 08 年 2 月 7 日 2007 年 2 月 18 日 2006 年 1 月 29 日 05 年 2 月 9 日 2004 年 1 月 22 日 03 年 2 月 1 日 2002 年 2 月 12 日 2001 年 1 月 24 日 00 年 2 月 5 日 99 年 2 月 16 日 98 年 1 月 28 日 97 年 2 月 7 日 96 年 2 月 19 日 95 年 1 月 31 日 94 年 2 月 10 日 93 年 1 月 23 日 92 年 2 月 4 日 91 年 2 月 15 日 90 年 1 月 27 日 89 年 2 月 6 日 88 年 2 月 17 日 87 年 1 月 29 日 86 年 2 月 9 日 85 年 2 月 20 日 84 年 2 月 2 日 43 年 2 月 10 日 42 年 1 月 22 日 41 年 2 月 1 日 40 年 2 月 12 日 39 年 1 月 24 日 38 年 2 月 4 日 37 年 2 月 15 日 36 年 1 月 28 日
【问题讨论】:
-
输出是什么?哪一部分出乎意料?
标签: swift swift2 nscalendar