ios – 将gregorian日期字符串转换为伊斯兰日期会提供正确和不正确的结果

ios – 将gregorian日期字符串转换为伊斯兰日期会提供正确和不正确的结果,第1张

概述我有以下两个日期字符串:(1)24/04/2013和(2)19/03/2013我试图将这些日期转换成伊斯兰教(Um Al Qura)日期,我使用这个代码块这样做: NSDateFormatter *df = [[NSDateFormatter alloc] init]; df.dateFormat = @"dd/MM/yyyy"; df.calendar = [[NSCalenda 我有以下两个日期字符串:(1)24/04/2013和(2)19/03/2013我试图将这些日期转换成伊斯兰教(Um Al Qura)日期,我使用这个代码块这样做:
NSDateFormatter *df = [[NSDateFormatter alloc] init];    df.dateFormat = @"dd/MM/yyyy";    df.calendar = [[NSCalendar alloc] initWithCalendarIDentifIEr:NSGregorianCalendar];    NSDate *dateInGrogrian = [df dateFromString:@"24/04/2013"];    NSDateFormatter *df2 = [[NSDateFormatter alloc] init];    NSCalendar * cal = [[NSCalendar alloc] initWithCalendarIDentifIEr:NSIslamicCalendar];    [df2 setCalendar:cal];    [df2 setDateFormat:@"dd/MM/yyyy"];    NSLog(@"Converted date to Islamic = %@",[df2 stringFromDate:dateInGrogrian]);

如果输入字符串是24/04/2013,NSLog显示:

转换为伊斯兰= 14/06/1434这是正确的(根据所有伊斯兰国家使用的the formal Islamic calendar).但如果输入字符串是19/03/2013,NSLog显示:

转换日期为伊斯兰= 08/05/1434这是不正确的(根据伊斯兰教日历正确的日期必须是07/05/1434这是1天后).

在您提出答案之前要考虑:

(1)我尝试使用日历标识符NSIslamicCivilCalendar而不是NSIslamicCalendar,但无效:其中一个转换日期是正确的,另一个错误(1天后).

(2)我试图使用GMT时区,如下所示:[df2 setTimeZone:[NSTimeZone timeZoneWithname:@“GMT”]];,这产生了第(2)天的正确转换日期,但第(1)天(1天后)不正确.

(3)我已经尝试了解决方案的组合:NSIslamicCivilCalendar有/没有GMT时区,NSIslamicCalendar有/没有GMT时区,但也没有用…

任何人都可以提供满足这两个日期的代码块?所以我确保任何提供的gregorian日期字符串被正确地转换成伊斯兰日期字符串.

非常感谢.

解决方法 在打印出过去四年的所有日期之后,似乎苹果公司用数学计算伊斯兰教日历的方式,因为Moxy指出,实际的日历不是基于科学的日子而是基于月球近似的.

这个公式是,所有奇数月份都有30天,所有偶数月份有29天,在任何一年的最后一个月增加了一个额外的日子,其中年份30是以下之一:2,5,7,10,13,16,18,21,24,26或29.

结果是平均月长29.53056天,与农历29.53059天相当接近.

这个公式已经在计算机的其他地方使用,因为它是计算日期的唯一方法,而不使用历史记录中每年的查找表.因此,除非您自己编写查找表,否则这将与您可以获得的所有日期向前和向后一样准确.

总结

以上是内存溢出为你收集整理的ios – 将gregorian日期字符串转换为伊斯兰日期会提供正确和不正确的结果全部内容,希望文章能够帮你解决ios – 将gregorian日期字符串转换为伊斯兰日期会提供正确和不正确的结果所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1113342.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存