万年历代码c语言(万年历代码讲解)

虽然,我们可以自己写算法,但是在很多现代浏览器中,可以直接使用Date对象的toLocaleString和toLocaleDateString方法来获得农历等各种历法的字符串。这两个函数的区别在于前者包括日期和时间,后者只包括年月日。它们都有两个可选参数,第一个参数是符合BCP47标准的语言标记,第二个参数是一些设置,我们暂且用不到,这篇文章中,我们主要用到第一个参数。

当这两个方法没有传入参数的时候,会返回本机语言环境的公历日期(或者日期和时间)字符串

我们要获得农历日期,就需要使用到第一个参数了。这个参数是一个字符串,这个字符串是由多个缩略词通过连词符构成的,有些词语是可选的。

一个代码实例:

new Date().toLocaleString("zh-u-ca-chinese");

上面的代码会返回使用中文表示的中国农历的日期和时间字符串,“zh-u-ca-chinese”这个字符串被称为语言标记。

接下去,我们来稍微地看一下语言标记的构成。

首先,第一个词汇是必选的,代表语言,zh代表中文,en代表英语。

接着,可以是该语言的一个写法,例如Hans代表简体,Hant代表繁体,那么连起来就是zh-Hans代表简体中文,zh-Hant代表繁体中文。这个词汇是可选的。

然后,可以是某个特定地区使用的该语言,这个参数也是可选的。例如en-GB代表英国英语,en-US代表美国英语,在没有指定地区代码的情况下,代表的是这种语言的标准形式,例如en代表标准英语。

之后,我们可以使用u参数开启Unicode扩展。Unicode扩展中定义了各种语言的各种不同使用场景(例如数字、日历等,被称为Key,即键,其中日历的键为ca)下的各种类型(例如历法,被称为Type,即类型)。那么,u-ca就是指Unicode日历扩展。

日历的类型有很多,chinese代表中国农历,japnese代表日本年号日历,buddhist代表泰国佛历,其它请参见cldr官方文档中和BCP47标准相关的内容。那么,连起来,“zh-u-ca-chinese”就代表使用中文表示的中国农历,“en-u-ca-chinese”就代表使用英文表示的中国农历。

    
本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 cloud@ksuyun.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.daxuejiayuan.com/14955.html