update
[LunarCalendar.git] / README.md
1 #LunarCalendar#
2
3 农历(阴历)万年历,是一款支持Node.js和浏览器端使用的全功能农历和公历日历类库。支持农历与公历之间相互转换,含有二十四节气,天干地支纪年纪月纪日,生肖属相,公历节假日及农历传统节假日信息等功能。自带2013-2014节假日安排数据,并可自行配置。带有黄历数据,可自行选择配置。支持1891-2100年。使用**LunarCalendar**可快速开发一款属于自己的万年历产品,行动起来吧!
4
5 ##Install##
6
7 1. Node.js服务器端(使用npm安装):
8 `npm install lunar-calendar`
9 2. 浏览器端使用,引用脚本:
10 `<script type="text/javascript" src="lib/LunarCalendar.min.js"></script>`
11
12
13 ##Usage##
14 ###Node.js###
15 var LunarCalendar = require("lunar-calendar");
16
17 ###浏览器###
18 `window.LunarCalendar`是一个全局对象,可以全局作用域直接调用。
19
20 ##DEMO产品:小推万年历(手机版)##
21 访问方式:(手机扫描二维码)
22
23 ![二维码](http://cdn.tuijs.com/upload/1956115939.png)
24
25 ![小推万年历截图](http://cdn.tuijs.com/upload/calendar_photo.png)
26
27 ##方法列表##
28 ###LunarCalendar.calendar(year,month[,fill])###
29 通过公历获取某月农历数据
30
31 ####参数说明####
32 - @param {Number} `year` 公历年 范围[1891-2100]
33 - @param {Number} `month` 公历月 范围[1-12]
34 - @param {Boolean} `fill`(可选) 是否填充当月日历首尾日期,设为true时,会在首尾填入上下月数据,自动补全一个7*6阵列数据。(可更美观的打造你的万年历产品)
35
36 ####返回数据####
37         {
38             "firstDay": 5, //该月1号星期几(日历开始位置)
39             "monthDays": 28, //该月天数
40             "monthData": [ //本月所有日历数据
41                 {
42                     "year": 2014, //公历年
43                     "month": 2, //公历月
44                     "day": 1, //公历日
45                     "zodiac": "蛇", //生肖属相
46                     "GanZhiYear": "癸巳", //干支纪年
47                     "GanZhiMonth": "乙丑", //干支纪月
48                     "GanZhiDay": "癸卯", //干支纪日
49                     "worktime": 2, //0无特殊安排,1工作,2放假
50                     "lunarYear": 2014, //农历年
51                     "lunarMonth": 1, //农历月(1-13,有闰月情况,比如当前闰9月,10表示闰9月,11表示10月)
52                     "lunarDay": 2, //农历日
53                     "lunarMonthName": "正月", //农历月中文名
54                     "lunarDayName": "初二", //农历日中文名
55                     "lunarLeapMonth": 9, //农历闰月所在月份,0表示无闰月
56                                 "solarFestival": "", //公历节假日,undefined或‘劳动节’之类
57                                 "lunarFestival": "", //农历节假日,undefined或‘除夕’之类
58                                 "term": "" //二十四节气名,undefined或‘立春’之类
59                 },
60                         ...
61             ]
62         }
63
64 ###LunarCalendar.solarCalendar(year,month[,fill])###
65 获取公历某月日历数据(不带农历信息)
66
67 ####参数说明####
68 - @param {Number} `year` 公历年 范围[1-~]公元后
69 - @param {Number} `month` 公历月 范围[1-12]
70 - @param {Boolean} `fill`(可选) 是否填充当月日历首尾日期,设为true时,会在首尾填入上下月数据,自动补全一个7*6阵列数据。(可更美观的打造你的万年历产品)
71
72 ####返回数据####
73         {
74             "firstDay": 5, //该月1号星期几(日历开始位置)
75             "monthDays": 28, //该月天数
76             "monthData": [ //本月所有日历数据
77                 {
78                     "year": 2014, //公历年
79                     "month": 2, //公历月
80                     "day": 1 //公历日
81                 },
82                         ...
83             ]
84         }
85
86 ###LunarCalendar.solarToLunar(year,month,day)###
87 将公历转换为农历
88
89 ####参数说明####
90 - @param {Number} `year` 公历年 范围[1891-2100]
91 - @param {Number} `month` 公历月 范围[1-12]
92 - @param {Number} `day` 公历日 范围[1-31]
93
94 ####返回数据####
95         {
96             "zodiac": "蛇", //生肖属相
97             "GanZhiYear": "癸巳", //干支纪年
98             "GanZhiMonth": "乙丑", //干支纪月
99             "GanZhiDay": "癸卯", //干支纪日
100             "worktime": 2, //0无特殊安排,1工作,2放假
101             "lunarYear": 2014, //农历年
102             "lunarMonth": 1, //农历月(1-13,有闰月情况,比如当前闰9月,10表示闰9月,11表示10月)
103             "lunarDay": 2, //农历日
104             "lunarMonthName": "正月", //农历月中文名
105             "lunarDayName": "初二", //农历日中文名
106             "lunarLeapMonth": 9, //农历闰月所在月份,0表示无闰月
107                 "solarFestival": "", //公历节假日,undefined或‘劳动节’之类
108                 "lunarFestival": "", //农历节假日,undefined或‘除夕’之类
109                 "term": "" //二十四节气名,undefined或‘立春’之类
110         }
111
112 ###LunarCalendar.lunarToSolar(year,month,day)###
113 将农历转换为公历
114
115 ####参数说明####
116 - @param {Number} `year` 农历年 范围[1891-2100]
117 - @param {Number} `month` 农历月 范围[1-13](有闰月情况,比如当前闰9月,10表示闰9月,11表示10月)
118 - @param {Number} `day` 农历日 范围[1-30]
119
120 ####返回数据####
121         {
122             "year": 2014, //公历年
123             "month": 1, //公历月
124             "day": 31 //公历日
125         }
126
127 ###LunarCalendar.setWorktime(data)###
128 设置某年的节假日安排信息(类库已内置2013-2014年的数据)
129
130 ####参数说明####
131 - @param {Object} `data` 节假日安排信息(以年为key,可设置多年)
132 - 0:无特殊安排,1:工作,2:放假
133
134 **参数data格式如下:**
135
136         {
137             "y2014": {
138                 "d0101": 2,
139                 "d0126": 1,
140                 "d0131": 2,
141                 "d0201": 2,
142                 "d0202": 2,
143                 "d0203": 2,
144                 "d0204": 2,
145                 "d0205": 2,
146                 "d0206": 2,
147                 "d0208": 1,
148                 "d0405": 2,
149                 "d0407": 2,
150                 "d0501": 2,
151                 "d0502": 2,
152                 "d0503": 2,
153                 "d0504": 1,
154                 "d0602": 2,
155                 "d0908": 2,
156                 "d0928": 1,
157                 "d1001": 2,
158                 "d1002": 2,
159                 "d1003": 2,
160                 "d1004": 2,
161                 "d1005": 2,
162                 "d1006": 2,
163                 "d1007": 2,
164                 "d1011": 1
165             }
166         }
167
168 ##黄历数据##
169 在目录/hl/下有2008-2020年的黄历数据,用户可自行选择在自己万年历中进行添加。
170
171 ##公用服务器API##
172 用Node.js搭载lunar-calendar类库。
173
174 - API:http://api.tuijs.com/
175 - 请求类型:GET
176 - 返回数据:JSON 或 JSONP
177 - JSONP:支持,添加参数callback(仅支持数字,字母,下划线)
178
179 ###API列表###
180
181 - 通过公历获取某月农历数据 http://api.tuijs.com/calendar
182 - 获取公历某月日历数据(不带农历信息)http://api.tuijs.com/solarCalendar
183 - 将公历转换为农历http://api.tuijs.com/solarToLunar
184 - 将农历转换为公历http://api.tuijs.com/lunarToSolar
185
186 **例如:**
187
188 http://api.tuijs.com/lunarToSolar?year=2011&month=1&day=1&callback=fn
189
190 返回:
191 `fn({"year":2011,"month":2,"day":16})`
192
193 ##其它##
194 - 项目主页:[http://www.tuijs.com/](http://www.tuijs.com/ "项目主页")
195 - 作者博客:[http://www.2fz1.com/](http://www.2fz1.com/ "作者博客")
196
197 JasonZhou