前言
最近需要做公历和农历的C++转换库,就在网站上找了一些文章来参考,但这些文章,都有一些不足(比如只能用于MFC,数据范围过小等等。。。。。。),于是决定自己开发一个。
数据存储
我打算包含1900-2100共200年的数据
经过个人研究,决定使用以下方式:
首先,日期用儒略日存,这样日期加减就比较简单
存储1900-2100年每年农历月首的JDN:
// 范围: 农历1900年正月初一~农历2100年除夕
const int FIRST_DAY=2415051, LAST_DAY=2415051+73383, OFFSET=73383;
// 每一项都减去了FIRST_DAY
static const int lunar_month_first_day[][13]={
{0, 29, 59, 88, 117, 147, 176, 206, 236, 265, 295, 325, 354}, // 1900
{384, 413, 443, 472, 501, 531, 560, 590, 619, 649, 679, 709}, // 1901
{738, 768, 797, 827, 856, 885, 915, 944, 974, 1003, 1033, 1063}, // 1902
{1093, 1122, 1152, 1181, 1211, 1240, 1269, 1299, 1328, 1357, 1387, 1417, 1446}, // 1903
{1476, 1506, 1536, 1565, 1595, 1624, 1653, 1683, 1712, 1741, 1771, 1801}, // 1904
{1830, 1860, 1890, 1919, 1949, 1979, 2008, 2037, 2067, 2096, 2126, 2155}, // 1905
{2185, 2214, 2244, 2274, 2303, 2333, 2362, 2392, 2421, 2451, 2480, 2510, 2539}, // 1906
{2569, 2598, 2628, 2657, 2687, 2716, 2746, 2776, 2805, 2835, 2864, 2894}, // 1907
{2923, 2953, 2982, 3011, 3041, 3071, 3100, 3130, 3159, 3189, 3219, 3248}, // 1908
{3278, 3307, 3337, 3366, 3395, 3425, 3454, 3484, 3513, 3543, 3573, 3603, 3632}, // 1909
{3662, 3691, 3721, 3750, 3779, 3809, 3838, 3868, 3897, 3927, 3957, 3987}, // 1910
{4016, 4046, 4075, 4105, 4134, 4163, 4193, 4222, 4251, 4281, 4311, 4340, 4370}, // 1911
{4400, 4430, 4459, 4489, 4518, 4547, 4577, 4606, 4635, 4665, 4695, 4724}, // 1912
{4754, 4784, 4814, 4843, 4873, 4902, 4931, 4961, 4990, 5019, 5049, 5078}, // 1913
{5108, 5138, 5168, 5197, 5227, 5256, 5286, 5315, 5345, 5374, 5403, 5433, 5462}, // 1914
{5492, 5522, 5551, 5581, 5611, 5640, 5670, 5699, 5729, 5758, 5788, 5817}, // 1915
{5846, 5876, 5906, 5935, 5965, 5994, 6024, 6054, 6083, 6113, 6142, 6172}, // 1916
{6201, 6231, 6260, 6289, 6319, 6348, 6378, 6408, 6437, 6467, 6497, 6526, 6556}, // 1917
{6585, 6615, 6644, 6673, 6703, 6732, 6762, 6791, 6821, 6851, 6880, 6910}, // 1918
{6940, 6969, 6999, 7028, 7057, 7087, 7116, 7145, 7175, 7205, 7234, 7264, 7294}, // 1919
{7324, 7353, 7383, 7412, 7441, 7471, 7500, 7529, 7559, 7588, 7618, 7648}, // 1920
{7678, 7708, 7737, 7767, 7796, 7825, 7855, 7884, 7913, 7943, 7972, 8002}, // 1921
{8032, 8062, 8091, 8121, 8151, 8180, 8209, 8239, 8268, 8297, 8327, 8356, 8386}, // 1922
{8416, 8445, 8475, 8505, 8534, 8564, 8593, 8623, 8652, 8681, 8711, 8740}, // 1923
{8770, 8799, 8829, 8859, 8888, 8918, 8948, 8977, 9007, 9036, 9066, 9095}, // 1924
{9124, 9154, 9183, 9213, 9242, 9272, 9302, 9331, 9361, 9391, 9420, 9450, 9479}, // 1925
{9509, 9538, 9567, 9597, 9626, 9656, 9685, 9715, 9745, 9774, 9804, 9834}, // 1926
{9863, 9893, 9922, 9951, 9981, 10010, 10040, 10069, 10099, 10128, 10158, 10188}, // 1927
{10218, 10247, 10277, 10306, 10335, 10365, 10394, 10423, 10453, 10482, 10512, 10542, 10572}, // 1928
{10602, 10631, 10661, 10690, 10719, 10749, 10778, 10807, 10837, 10866, 10896, 10926}, // 1929
{10956, 10985, 11015, 11045, 11074, 11103, 11133, 11162, 11191, 11221, 11250, 11280, 11310}, // 1930
{11339, 11369, 11399, 11428, 11458, 11487, 11517, 11546, 11575, 11605, 11634, 11664}, // 1931
{11693, 11723, 11753, 11783, 11812, 11842, 11871, 11901, 11930, 11959, 11989, 12018}, // 1932
{12048, 12077, 12107, 12137, 12166, 12196, 12226, 12255, 12285, 12314, 12344, 12373, 12402}, // 1933
{12432, 12461, 12491, 12520, 12550, 12580, 12609, 12639, 12668, 12698, 12728, 12757}, // 1934
{12787, 12816, 12845, 12875, 12904, 12934, 12963, 12993, 13023, 13052, 13082, 13112}, // 1935
{13141, 13171, 13200, 13229, 13259, 13288, 13317, 13347, 13377, 13406, 13436, 13466, 13496}, // 1936
{13525, 13555, 13584, 13613, 13643, 13672, 13701, 13731, 13760, 13790, 13820, 13850}, // 1937
{13879, 13909, 13939, 13968, 13997, 14027, 14056, 14085, 14115, 14144, 14174, 14204, 14233}, // 1938
{14263, 14293, 14323, 14352, 14381, 14411, 14440, 14469, 14499, 14528, 14558, 14587}, // 1939
{14617, 14647, 14677, 14706, 14736, 14765, 14795, 14824, 14853, 14883, 14912, 14942}, // 1940
{14971, 15001, 15031, 15060, 15090, 15120, 15149, 15179, 15208, 15237, 15267, 15296, 15326}, // 1941
{15355, 15385, 15414, 15444, 15474, 15503, 15533, 15562, 15592, 15621, 15651, 15680}, // 1942
{15710, 15739, 15769, 15798, 15828, 15857, 15887, 15917, 15946, 15976, 16005, 16035}, // 1943
{16064, 16094, 16123, 16153, 16182, 16212, 16241, 16271, 16300, 16330, 16360, 16389, 16419}, // 1944
{16449, 16478, 16507, 16537, 16566, 16595, 16625, 16654, 16684, 16714, 16744, 16773}, // 1945
{16803, 16833, 16862, 16891, 16921, 16950, 16979, 17009, 17038, 17068, 17098, 17127}, // 1946
{17157, 17187, 17217, 17246, 17275, 17305, 17334, 17363, 17393, 17422, 17452, 17481, 17511}, // 1947
{17541, 17571, 17600, 17630, 17659, 17689, 17718, 17747, 17777, 17806, 17836, 17865}, // 1948
{17895, 17925, 17954, 17984, 18014, 18043, 18073, 18102, 18131, 18161, 18190, 18220, 18249}, // 1949
{18279, 18308, 18338, 18368, 18397, 18427, 18457, 18486, 18515, 18545, 18574, 18604}, // 1950
{18633, 18663, 18692, 18722, 18752, 18781, 18811, 18840, 18870, 18899, 18929, 18958}, // 1951
{18988, 19017, 19047, 19076, 19106, 19135, 19165, 19194, 19224, 19254, 19283, 19313, 19342}, // 1952
{19372, 19401, 19431, 19460, 19489, 19519, 19549, 19578, 19608, 19638, 19667, 19697}, // 1953
{19726, 19756, 19785, 19815, 19844, 19873, 19903, 19932, 19962, 19992, 20021, 20051}, // 1954
{20081, 20110, 20140, 20169, 20199, 20228, 20257, 20287, 20316, 20346, 20375, 20405, 20435}, // 1955
{20465, 20494, 20524, 20553, 20583, 20612, 20641, 20671, 20700, 20730, 20759, 20789}, // 1956
{20819, 20849, 20878, 20908, 20937, 20967, 20996, 21025, 21055, 21084, 21114, 21143, 21173}, // 1957
{21202, 21232, 21262, 21292, 21321, 21351, 21380, 21409, 21439, 21468, 21498, 21527}, // 1958
{21557, 21586, 21616, 21646, 21675, 21705, 21734, 21764, 21793, 21823, 21852, 21882}, // 1959
{21911, 21941, 21970, 22000, 22029, 22059, 22089, 22118, 22148, 22177, 22207, 22236, 22266}, // 1960
{22295, 22325, 22354, 22384, 22413, 22443, 22472, 22502, 22532, 22561, 22591, 22620}, // 1961
{22650, 22679, 22709, 22738, 22767, 22797, 22826, 22856, 22886, 22915, 22945, 22975}, // 1962
{23004, 23034, 23063, 23093, 23122, 23151, 23181, 23210, 23240, 23269, 23299, 23329, 23359}, // 1963
{23388, 23418, 23447, 23477, 23506, 23535, 23565, 23594, 23624, 23653, 23683, 23713}, // 1964
{23743, 23772, 23802, 23831, 23861, 23890, 23919, 23949, 23978, 24007, 24037, 24067}, // 1965
{24096, 24126, 24156, 24186, 24215, 24245, 24274, 24303, 24333, 24362, 24391, 24421, 24451}, // 1966
{24480, 24510, 24540, 24569, 24599, 24629, 24658, 24687, 24717, 24746, 24776, 24805}, // 1967
{24835, 24864, 24894, 24923, 24953, 24983, 25012, 25042, 25071, 25101, 25130, 25160, 25189}, // 1968
{25219, 25248, 25278, 25307, 25337, 25366, 25396, 25426, 25455, 25485, 25514, 25544}, // 1969
{25573, 25603, 25632, 25661, 25691, 25720, 25750, 25780, 25809, 25839, 25869, 25898}, // 1970
{25928, 25957, 25987, 26016, 26045, 26075, 26104, 26134, 26163, 26193, 26223, 26253, 26282}, // 1971
{26312, 26341, 26371, 26400, 26429, 26459, 26488, 26518, 26547, 26577, 26607, 26636}, // 1972
{26666, 26696, 26725, 26755, 26784, 26813, 26843, 26872, 26901, 26931, 26961, 26990}, // 1973
{27020, 27050, 27080, 27109, 27139, 27168, 27197, 27227, 27256, 27285, 27315, 27345, 27374}, // 1974
{27404, 27434, 27464, 27493, 27523, 27552, 27581, 27611, 27640, 27669, 27699, 27728}, // 1975
{27758, 27788, 27818, 27847, 27877, 27906, 27936, 27965, 27995, 28024, 28053, 28083, 28112}, // 1976
{28142, 28172, 28201, 28231, 28261, 28290, 28320, 28349, 28379, 28408, 28438, 28467}, // 1977
{28496, 28526, 28555, 28585, 28615, 28644, 28674, 28704, 28733, 28763, 28792, 28822}, // 1978
{28851, 28881, 28910, 28939, 28969, 28998, 29028, 29058, 29087, 29117, 29147, 29176, 29206}, // 1979
{29235, 29265, 29294, 29323, 29353, 29382, 29412, 29441, 29471, 29501, 29530, 29560}, // 1980
{29590, 29619, 29649, 29678, 29707, 29737, 29766, 29795, 29825, 29855, 29884, 29914}, // 1981
{29944, 29974, 30003, 30033, 30062, 30091, 30121, 30150, 30179, 30209, 30238, 30268, 30298}, // 1982
{30328, 30358, 30387, 30417, 30446, 30475, 30505, 30534, 30563, 30593, 30622, 30652}, // 1983
{30682, 30712, 30741, 30771, 30801, 30830, 30859, 30889, 30918, 30947, 30977, 31006, 31036}, // 1984
{31066, 31095, 31125, 31155, 31184, 31214, 31243, 31273, 31302, 31331, 31361, 31390}, // 1985
{31420, 31449, 31479, 31509, 31538, 31568, 31598, 31627, 31657, 31686, 31716, 31745}, // 1986
{31774, 31804, 31833, 31863, 31892, 31922, 31952, 31981, 32011, 32041, 32070, 32100, 32129}, // 1987
{32158, 32188, 32217, 32247, 32276, 32306, 32335, 32365, 32395, 32424, 32454, 32484}, // 1988
{32513, 32543, 32572, 32601, 32631, 32660, 32690, 32719, 32749, 32778, 32808, 32838}, // 1989
{32868, 32897, 32927, 32956, 32985, 33015, 33044, 33073, 33103, 33132, 33162, 33192, 33222}, // 1990
{33252, 33281, 33311, 33340, 33369, 33399, 33428, 33457, 33487, 33516, 33546, 33576}, // 1991
{33606, 33635, 33665, 33695, 33724, 33753, 33783, 33812, 33841, 33871, 33900, 33930}, // 1992
{33960, 33989, 34019, 34049, 34078, 34108, 34137, 34167, 34196, 34225, 34255, 34284, 34314}, // 1993
{34343, 34373, 34403, 34433, 34462, 34492, 34521, 34551, 34580, 34609, 34639, 34668}, // 1994
{34698, 34727, 34757, 34787, 34816, 34846, 34875, 34905, 34935, 34964, 34993, 35023, 35052}, // 1995
{35082, 35111, 35141, 35170, 35200, 35230, 35259, 35289, 35318, 35348, 35378, 35407}, // 1996
{35436, 35466, 35495, 35525, 35554, 35584, 35613, 35643, 35673, 35702, 35732, 35762}, // 1997
{35791, 35821, 35850, 35879, 35909, 35938, 35967, 35997, 36027, 36056, 36086, 36116, 36145}, // 1998
{36175, 36205, 36234, 36263, 36293, 36322, 36351, 36381, 36410, 36440, 36470, 36500}, // 1999
{36529, 36559, 36589, 36618, 36647, 36677, 36706, 36735, 36765, 36794, 36824, 36854}, // 2000
{36883, 36913, 36943, 36972, 37002, 37031, 37061, 37090, 37119, 37149, 37178, 37208, 37237}, // 2001
{37267, 37297, 37327, 37356, 37386, 37415, 37445, 37474, 37503, 37533, 37562, 37592}, // 2002
{37621, 37651, 37681, 37710, 37740, 37770, 37799, 37829, 37858, 37887, 37917, 37946}, // 2003
{37976, 38005, 38035, 38064, 38094, 38124, 38153, 38183, 38212, 38242, 38271, 38301, 38330}, // 2004
{38360, 38389, 38419, 38448, 38478, 38507, 38537, 38567, 38596, 38626, 38655, 38685}, // 2005
{38714, 38744, 38773, 38803, 38832, 38862, 38891, 38921, 38950, 38980, 39010, 39039, 39069}, // 2006
{39099, 39128, 39157, 39187, 39216, 39245, 39275, 39304, 39334, 39364, 39394, 39423}, // 2007
{39453, 39483, 39512, 39541, 39571, 39600, 39629, 39659, 39688, 39718, 39748, 39777}, // 2008
{39807, 39837, 39867, 39896, 39925, 39955, 39984, 40013, 40043, 40072, 40102, 40131, 40161}, // 2009
{40191, 40221, 40250, 40280, 40309, 40339, 40368, 40397, 40427, 40456, 40486, 40515}, // 2010
{40545, 40575, 40604, 40634, 40664, 40693, 40723, 40752, 40781, 40811, 40840, 40870}, // 2011
{40899, 40929, 40958, 40988, 41018, 41047, 41077, 41106, 41136, 41165, 41195, 41224, 41254}, // 2012
{41283, 41313, 41342, 41372, 41401, 41431, 41461, 41490, 41520, 41549, 41579, 41608}, // 2013
{41638, 41667, 41697, 41726, 41756, 41785, 41815, 41844, 41874, 41904, 41933, 41963, 41992}, // 2014
{42022, 42051, 42081, 42110, 42139, 42169, 42198, 42228, 42258, 42288, 42317, 42347}, // 2015
{42376, 42406, 42435, 42465, 42494, 42523, 42553, 42582, 42612, 42642, 42671, 42701}, // 2016
{42731, 42760, 42790, 42819, 42849, 42878, 42907, 42937, 42966, 42996, 43025, 43055, 43085}, // 2017
{43115, 43144, 43174, 43203, 43233, 43262, 43291, 43321, 43350, 43380, 43409, 43439}, // 2018
{43469, 43499, 43528, 43558, 43587, 43617, 43646, 43675, 43705, 43734, 43763, 43793}, // 2019
{43823, 43852, 43882, 43912, 43942, 43971, 44001, 44030, 44059, 44089, 44118, 44148, 44177}, // 2020
{44207, 44236, 44266, 44296, 44325, 44355, 44384, 44414, 44443, 44473, 44502, 44532}, // 2021
{44561, 44591, 44620, 44650, 44679, 44709, 44739, 44768, 44798, 44827, 44857, 44886}, // 2022
{44916, 44945, 44975, 45004, 45033, 45063, 45093, 45122, 45152, 45182, 45211, 45241, 45270}, // 2023
{45300, 45329, 45359, 45388, 45417, 45447, 45476, 45506, 45536, 45565, 45595, 45625}, // 2024
{45654, 45684, 45713, 45743, 45772, 45801, 45831, 45860, 45890, 45919, 45949, 45979, 46009}, // 2025
{46038, 46068, 46097, 46127, 46156, 46185, 46215, 46244, 46273, 46303, 46333, 46363}, // 2026
{46392, 46422, 46452, 46481, 46511, 46540, 46569, 46599, 46628, 46657, 46687, 46717}, // 2027
{46746, 46776, 46806, 46836, 46865, 46895, 46924, 46953, 46983, 47012, 47041, 47071, 47101}, // 2028
{47130, 47160, 47190, 47219, 47249, 47278, 47308, 47337, 47367, 47396, 47425, 47455}, // 2029
{47485, 47514, 47544, 47573, 47603, 47633, 47662, 47692, 47721, 47751, 47780, 47810}, // 2030
{47839, 47868, 47898, 47928, 47957, 47987, 48016, 48046, 48076, 48105, 48135, 48164, 48194}, // 2031
{48223, 48253, 48282, 48311, 48341, 48370, 48400, 48430, 48459, 48489, 48519, 48548}, // 2032
{48578, 48607, 48637, 48666, 48695, 48725, 48754, 48784, 48813, 48843, 48873, 48903, 48932}, // 2033
{48962, 48991, 49021, 49050, 49079, 49109, 49138, 49168, 49197, 49227, 49257, 49286}, // 2034
{49316, 49346, 49375, 49405, 49434, 49463, 49493, 49522, 49551, 49581, 49611, 49640}, // 2035
{49670, 49700, 49730, 49759, 49789, 49818, 49847, 49877, 49906, 49935, 49965, 49994, 50024}, // 2036
{50054, 50084, 50114, 50143, 50173, 50202, 50231, 50261, 50290, 50319, 50349, 50378}, // 2037
{50408, 50438, 50468, 50497, 50527, 50556, 50586, 50615, 50645, 50674, 50703, 50733}, // 2038
{50762, 50792, 50822, 50851, 50881, 50911, 50940, 50970, 50999, 51029, 51058, 51088, 51117}, // 2039
{51146, 51176, 51205, 51235, 51265, 51294, 51324, 51353, 51383, 51413, 51442, 51472}, // 2040
{51501, 51530, 51560, 51589, 51619, 51648, 51678, 51708, 51737, 51767, 51797, 51826}, // 2041
{51856, 51885, 51915, 51944, 51973, 52003, 52032, 52062, 52091, 52121, 52151, 52180, 52210}, // 2042
{52240, 52269, 52299, 52328, 52357, 52387, 52416, 52445, 52475, 52505, 52534, 52564}, // 2043
{52594, 52624, 52653, 52683, 52712, 52741, 52771, 52800, 52829, 52859, 52888, 52918, 52948}, // 2044
{52978, 53008, 53037, 53067, 53096, 53125, 53155, 53184, 53213, 53243, 53272, 53302}, // 2045
{53332, 53362, 53391, 53421, 53450, 53480, 53509, 53539, 53568, 53597, 53627, 53656}, // 2046
{53686, 53716, 53745, 53775, 53805, 53834, 53864, 53893, 53923, 53952, 53981, 54011, 54040}, // 2047
{54070, 54099, 54129, 54159, 54188, 54218, 54248, 54277, 54307, 54336, 54365, 54395}, // 2048
{54424, 54454, 54483, 54513, 54542, 54572, 54602, 54631, 54661, 54691, 54720, 54750}, // 2049
{54779, 54808, 54838, 54867, 54897, 54926, 54956, 54985, 55015, 55045, 55074, 55104, 55134}, // 2050
{55163, 55193, 55222, 55251, 55281, 55310, 55339, 55369, 55399, 55428, 55458, 55488}, // 2051
{55518, 55547, 55577, 55606, 55635, 55665, 55694, 55723, 55753, 55782, 55812, 55842, 55872}, // 2052
{55902, 55931, 55961, 55990, 56019, 56049, 56078, 56107, 56137, 56166, 56196, 56226}, // 2053
{56256, 56285, 56315, 56345, 56374, 56403, 56433, 56462, 56491, 56521, 56550, 56580}, // 2054
{56610, 56639, 56669, 56699, 56728, 56758, 56787, 56817, 56846, 56875, 56905, 56934, 56964}, // 2055
{56993, 57023, 57053, 57083, 57112, 57142, 57171, 57201, 57230, 57259, 57289, 57318}, // 2056
{57348, 57377, 57407, 57437, 57466, 57496, 57525, 57555, 57585, 57614, 57643, 57673}, // 2057
{57702, 57732, 57761, 57791, 57820, 57850, 57879, 57909, 57939, 57968, 57998, 58028, 58057}, // 2058
{58086, 58116, 58145, 58175, 58204, 58234, 58263, 58293, 58322, 58352, 58382, 58412}, // 2059
{58441, 58471, 58500, 58529, 58559, 58588, 58617, 58647, 58676, 58706, 58736, 58766}, // 2060
{58795, 58825, 58855, 58884, 58913, 58943, 58972, 59001, 59031, 59060, 59090, 59120, 59150}, // 2061
{59179, 59209, 59239, 59268, 59297, 59327, 59356, 59385, 59415, 59444, 59474, 59504}, // 2062
{59533, 59563, 59593, 59622, 59652, 59681, 59711, 59740, 59769, 59799, 59828, 59858, 59887}, // 2063
{59917, 59947, 59977, 60006, 60036, 60065, 60095, 60124, 60153, 60183, 60212, 60242}, // 2064
{60271, 60301, 60331, 60360, 60390, 60420, 60449, 60479, 60508, 60537, 60567, 60596}, // 2065
{60626, 60655, 60685, 60714, 60744, 60774, 60803, 60833, 60862, 60892, 60921, 60951, 60980}, // 2066
{61010, 61039, 61069, 61098, 61128, 61157, 61187, 61217, 61246, 61276, 61305, 61335}, // 2067
{61364, 61394, 61423, 61453, 61482, 61511, 61541, 61571, 61600, 61630, 61660, 61689}, // 2068
{61719, 61748, 61778, 61807, 61837, 61866, 61895, 61925, 61954, 61984, 62014, 62044, 62073}, // 2069
{62103, 62132, 62162, 62191, 62221, 62250, 62279, 62309, 62338, 62368, 62398, 62427}, // 2070
{62457, 62487, 62516, 62546, 62575, 62605, 62634, 62663, 62693, 62722, 62752, 62781, 62811}, // 2071
{62841, 62871, 62900, 62930, 62959, 62989, 63018, 63047, 63077, 63106, 63136, 63165}, // 2072
{63195, 63225, 63254, 63284, 63314, 63343, 63373, 63402, 63431, 63461, 63490, 63520}, // 2073
{63549, 63579, 63608, 63638, 63668, 63697, 63727, 63756, 63786, 63815, 63845, 63874, 63904}, // 2074
{63933, 63963, 63992, 64022, 64051, 64081, 64111, 64140, 64170, 64199, 64229, 64258}, // 2075
{64288, 64317, 64347, 64376, 64406, 64435, 64465, 64494, 64524, 64554, 64583, 64613}, // 2076
{64642, 64672, 64701, 64731, 64760, 64789, 64819, 64848, 64878, 64908, 64938, 64967, 64997}, // 2077
{65026, 65056, 65085, 65115, 65144, 65173, 65203, 65232, 65262, 65292, 65321, 65351}, // 2078
{65381, 65410, 65440, 65469, 65499, 65528, 65557, 65587, 65616, 65646, 65675, 65705}, // 2079
{65735, 65765, 65794, 65824, 65853, 65883, 65912, 65941, 65971, 66000, 66029, 66059, 66089}, // 2080
{66119, 66148, 66178, 66208, 66237, 66267, 66296, 66325, 66355, 66384, 66413, 66443}, // 2081
{66473, 66502, 66532, 66562, 66592, 66621, 66650, 66680, 66709, 66739, 66768, 66797, 66827}, // 2082
{66857, 66886, 66916, 66946, 66975, 67005, 67034, 67064, 67093, 67123, 67152, 67182}, // 2083
{67211, 67241, 67270, 67300, 67329, 67359, 67389, 67418, 67448, 67477, 67507, 67536}, // 2084
{67566, 67595, 67625, 67654, 67683, 67713, 67743, 67772, 67802, 67832, 67861, 67891, 67920}, // 2085
{67950, 67979, 68009, 68038, 68067, 68097, 68126, 68156, 68186, 68215, 68245, 68275}, // 2086
{68304, 68334, 68363, 68393, 68422, 68451, 68481, 68510, 68540, 68569, 68599, 68629}, // 2087
{68659, 68688, 68718, 68747, 68777, 68806, 68835, 68865, 68894, 68923, 68953, 68983, 69013}, // 2088
{69042, 69072, 69102, 69131, 69161, 69190, 69219, 69249, 69278, 69307, 69337, 69367}, // 2089
{69396, 69426, 69456, 69486, 69515, 69545, 69574, 69603, 69633, 69662, 69691, 69721, 69751}, // 2090
{69780, 69810, 69840, 69869, 69899, 69928, 69958, 69987, 70017, 70046, 70075, 70105}, // 2091
{70134, 70164, 70194, 70223, 70253, 70283, 70312, 70342, 70371, 70401, 70430, 70460}, // 2092
{70489, 70518, 70548, 70578, 70607, 70637, 70666, 70696, 70726, 70755, 70785, 70814, 70844}, // 2093
{70873, 70902, 70932, 70961, 70991, 71020, 71050, 71080, 71109, 71139, 71169, 71198}, // 2094
{71228, 71257, 71287, 71316, 71345, 71375, 71404, 71434, 71463, 71493, 71523, 71553}, // 2095
{71582, 71612, 71641, 71671, 71700, 71729, 71759, 71788, 71817, 71847, 71877, 71907, 71936}, // 2096
{71966, 71996, 72025, 72055, 72084, 72113, 72143, 72172, 72201, 72231, 72261, 72290}, // 2097
{72320, 72350, 72380, 72409, 72439, 72468, 72497, 72526, 72556, 72585, 72615, 72644}, // 2098
{72674, 72704, 72734, 72763, 72793, 72823, 72852, 72881, 72911, 72940, 72969, 72999, 73028}, // 2099
{73058, 73088, 73118, 73147, 73177, 73206, 73236, 73265, 73295, 73324, 73353, 73383} // 2100
};
然后需要存每个农历月的天数和闰月信息,虽然根据上面能直接算出,但是大量计算需要时间
这里,每个月的天数用0和1就能表示,使用时加上29就行:
static int month_days[][12]={
{0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1}, // 1900
{0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0}, // 1901
{1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1}, // 1902
{0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1}, // 1903
{1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0}, // 1904
{1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1}, // 1905
{0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1}, // 1906
{0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0}, // 1907
{1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1}, // 1908
{0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1}, // 1909
{0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0}, // 1910
{1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1}, // 1911
{1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1}, // 1912
{1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1}, // 1913
{1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1}, // 1914
{1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0}, // 1915
{1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0}, // 1916
{1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0}, // 1917
{1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1}, // 1918
{0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1}, // 1919
{0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1}, // 1920
{1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1}, // 1921
{1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1}, // 1922
{0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1}, // 1923
{0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0}, // 1924
{1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1}, // 1925
{0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0}, // 1926
{1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1}, // 1927
{0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1}, // 1928
{0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1}, // 1929
{0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0}, // 1930
{1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0}, // 1931
{1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1}, // 1932
{0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1}, // 1933
{0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1}, // 1934
{0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0}, // 1935
{1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0}, // 1936
{1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0}, // 1937
{1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1}, // 1938
{1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1}, // 1939
{1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0}, // 1940
{1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0}, // 1941
{1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1}, // 1942
{0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0}, // 1943
{1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1}, // 1944
{0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1}, // 1945
{1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1}, // 1946
{1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1}, // 1947
{1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1}, // 1948
{1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1}, // 1949
{0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0}, // 1950
{1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1}, // 1951
{0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1}, // 1952
{0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0}, // 1953
{1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1}, // 1954
{0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1}, // 1955
{0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1}, // 1956
{1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0}, // 1957
{1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1}, // 1958
{0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0}, // 1959
{1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0}, // 1960
{1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1}, // 1961
{0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0}, // 1962
{1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0}, // 1963
{1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1}, // 1964
{0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0}, // 1965
{1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0}, // 1966
{1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1}, // 1967
{0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1}, // 1968
{0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0}, // 1969
{1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1}, // 1970
{0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1}, // 1971
{0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1}, // 1972
{1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1}, // 1973
{1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1}, // 1974
{1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1}, // 1975
{1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1}, // 1976
{1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0}, // 1977
{1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0}, // 1978
{1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0}, // 1979
{1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1}, // 1980
{0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1}, // 1981
{1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1}, // 1982
{1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1}, // 1983
{1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1}, // 1984
{0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1}, // 1985
{0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0}, // 1986
{1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0}, // 1987
{1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0}, // 1988
{1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1}, // 1989
{0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1}, // 1990
{0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1}, // 1991
{0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1}, // 1992
{0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0}, // 1993
{1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1}, // 1994
{0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1}, // 1995
{0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0}, // 1996
{1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0}, // 1997
{1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1}, // 1998
{1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0}, // 1999
{1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0}, // 2000
{1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1}, // 2001
{1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0}, // 2002
{1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1}, // 2003
{0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1}, // 2004
{0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0}, // 2005
{1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1}, // 2006
{0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1}, // 2007
{1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1}, // 2008
{1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1}, // 2009
{1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1}, // 2010
{1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0}, // 2011
{1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0}, // 2012
{1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1}, // 2013
{0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1}, // 2014
{0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0}, // 2015
{1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1}, // 2016
{0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1}, // 2017
{0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1}, // 2018
{1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1}, // 2019
{0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1}, // 2020
{0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0}, // 2021
{1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1}, // 2022
{0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1}, // 2023
{0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0}, // 2024
{1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0}, // 2025
{1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0}, // 2026
{1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0}, // 2027
{1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0}, // 2028
{1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1}, // 2029
{0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0}, // 2030
{0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0}, // 2031
{1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1}, // 2032
{0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1}, // 2033
{0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1}, // 2034
{1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1}, // 2035
{1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1}, // 2036
{1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1}, // 2037
{1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0}, // 2038
{1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0}, // 2039
{1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0}, // 2040
{0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1}, // 2041
{0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1}, // 2042
{0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1}, // 2043
{1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1}, // 2044
{1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1}, // 2045
{1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1}, // 2046
{1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1}, // 2047
{0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0}, // 2048
{1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0}, // 2049
{0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0}, // 2050
{1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1}, // 2051
{0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1}, // 2052
{0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1}, // 2053
{0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1}, // 2054
{0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0}, // 2055
{1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1}, // 2056
{0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0}, // 2057
{1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0}, // 2058
{1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0}, // 2059
{1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0}, // 2060
{1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0}, // 2061
{1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0}, // 2062
{1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1}, // 2063
{1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0}, // 2064
{1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1}, // 2065
{0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1}, // 2066
{0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0}, // 2067
{1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1}, // 2068
{0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1}, // 2069
{0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1}, // 2070
{1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1}, // 2071
{1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1}, // 2072
{1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0}, // 2073
{1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0}, // 2074
{1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1}, // 2075
{0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0}, // 2076
{1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0}, // 2077
{1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1}, // 2078
{0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1}, // 2079
{1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1}, // 2080
{0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1}, // 2081
{0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1}, // 2082
{0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0}, // 2083
{1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1}, // 2084
{0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1}, // 2085
{0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0}, // 2086
{1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1}, // 2087
{0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0}, // 2088
{1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0}, // 2089
{1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0}, // 2090
{1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0}, // 2091
{1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0}, // 2092
{0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0}, // 2093
{0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1}, // 2094
{0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0}, // 2095
{1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1}, // 2096
{1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1}, // 2097
{1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1}, // 2098
{1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1}, // 2099
{1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0} // 2100
};
上面的数组只存了非闰月的情况,闰月还要用另一个一维数组存
这时可能有人问:一个int怎么同时存闰几月和闰月天数?
我们采用以下方案:
对于任意农历年,没闰月存0,闰小月直接存月数,闰大月存月数+20
static const int leap_info[]={
8, 0, 0, 5, 0, 0, 24, 0, 0, 2,
0, 6, 0, 0, 25, 0, 0, 2, 0, 27,
0, 0, 5, 0, 0, 24, 0, 0, 2, 0,
6, 0, 0, 25, 0, 0, 23, 0, 27, 0,
0, 26, 0, 0, 24, 0, 0, 2, 0, 7,
0, 0, 25, 0, 0, 23, 0, 8, 0, 0,
6, 0, 0, 4, 0, 0, 3, 0, 7, 0,
0, 5, 0, 0, 4, 0, 8, 0, 0, 26,
0, 0, 4, 0, 10, 0, 0, 6, 0, 0,
5, 0, 0, 3, 0, 8, 0, 0, 5, 0,
0, 4, 0, 0, 2, 0, 7, 0, 0, 5,
0, 0, 4, 0, 9, 0, 0, 26, 0, 0,
4, 0, 0, 2, 0, 6, 0, 0, 5, 0,
0, 3, 0, 11, 0, 0, 26, 0, 0, 5,
0, 0, 2, 0, 7, 0, 0, 25, 0, 0,
23, 0, 8, 0, 0, 26, 0, 0, 24, 0,
0, 3, 0, 7, 0, 0, 5, 0, 0, 4,
0, 8, 0, 0, 6, 0, 0, 4, 0, 0,
3, 0, 7, 0, 0, 25, 0, 0, 4, 0,
8, 0, 0, 26, 0, 0, 4, 0, 0, 2, 0
};
(上面的数据均为python生成)
由于作者最近忙,本文将分篇写,这是第一篇,也是作者第一篇博客,等代码成型后,会分享到GitHub上。
未完待续......
(作者github: https://github.com/pystraf)