package com.e4a.runtime.api;//包名必须固定为这个,不能自己修改
import com.e4a.runtime.annotations.SimpleFunction;
import com.e4a.runtime.annotations.SimpleObject;
import com.e4a.runtime.variants.IntegerVariant;//添加
import com.e4a.runtime.variants.Variant;//添加
@SimpleObject
public final class 万年历类{
public static double Infinity=1e+308;
public static double date;
public static String syzygyType;
public static double syzygyTime;
public static double ecliType;
public static double ecliTime;
//-849~2100的闰月信息。
public static String leapM = "0c0080050010a0070030c0080050010a0070030c0080050020a0070030c0080050020a0070030c0090050020a0070030c0090050020a0060030c0060030c00900600c0c0060c00c00c00c0c000600c0c0006090303030006000c00c060c0006c00000c0c0c0060003030006c00009009c0090c00c009000300030906030030c0c00060c00090c0060600c0030060c00c003006009060030c0060060c0090900c00090c0090c00c006030006060003030c0c00030c0060030c0090060030c0090300c0080050020a0060030c0080050020b0070030c0090050010a0070030b0090060020a0070040c0080050020a0060030c0080050020b0070030c0090050010a0070030b0090060020a0070040c0080050020a0060030c0080050020b0070030c0090050000c00900909009009090090090090900900909009009009090090090900900900909009009090090090090900900909009009090090090090900900909009009009090090090900900900909009009090060030c0090050010a0070030b008005001090070040c0080050020a0060030c0090040010a0060030c0090050010a0070030b0080050010a008005001090050020a0060030c0080040010a0060030c0090050010a0070030b0080050010a0070030b008005001090070040c0080050020a0060030c0080040010a0060030c0090050010a0070030b008005001090070040c0080050020a0060030c0080040010a0060030c0090050010a0060030c0090050010a0070030b008005001090070040c0080050020a0060030c0080040010a0070030b0080050010a0070040c0080050020a0060030c0080040010a0070030c0090050010a0070030b0080050020a0060030c0080040010a0060030c0090050050020a0060030c0090050010b0070030c0090050010a0070040c0080040020a0060030c0080050020a0060030c0090050010a0070030b0080040020a0060040c0090050020b0070030c00a0050010a0070030b0090050020a0070030c0080040020a0060030c0090050010a0070030c0090050030b007005001090050020a007004001090060020c0070050c0090060030b0080040020a0060030b0080040010a0060030b0080050010a0050040c0080050010a0060030c0080050010b0070030c007005001090070030b0070040020a0060030c0080040020a0070030b0090050010a0060040c0080050020a0060040c0080050010b0070030c007005001090070030c0080050020a0070030c0090050020a0070030c0090050020a0060040c0090050020a0060040c0090050010b0070030c0080050030b007004001090060020c008004002090060020a008004001090050030b0080040020a0060040b0080040c00a0060020b007005001090060030b0070050020a0060020c008004002090070030c008005002090070040c0080040020a0060040b0090050010a0060030b0080050020a0060040c0080050010b00700300108005001090070030c0080050020a007003001090050030a0070030b0090050020a0060040c0090050030b0070040c0090050010c0070040c0080060020b00700400a090060020b007003002090060020a005004001090050030b007004001090050040c0080040c00a0060020c007005001090060030b0070050020a0060020c008004002090060030b008004002090060030b0080040020a0060040b0080040010b0060030b0070050010a00600400207005003080060040030700500307006004003070050030800600400307005004090060040030700500409006005002070050030a0060050030700500400206004002060050030020600400307005004090060040030700500408007005003080050040a00600500307005004002060050030800500400206005002070050040020600500307006004002070050030800600400307005004080060040a006005003080050040020700500409006004002060050030b0060050020700500308006004003070050040800600400307005004080060040020";
//-849~3000的闰月信息。
////public static String leapM = "0c0080050010a0070030c0080050010a0070030c0080050020a0070030c0080050020a0070030c0090050020a0070030c0090050020a0060030c0060030c00900600c0c0060c00c00c00c0c000600c0c0006090303030006000c00c060c0006c00000c0c0c0060003030006c00009009c0090c00c009000300030906030030c0c00060c00090c0060600c0030060c00c003006009060030c0060060c0090900c00090c0090c00c006030006060003030c0c00030c0060030c0090060030c0090300c0080050020a0060030c0080050020b0070030c0090050010a0070030b0090060020a0070040c0080050020a0060030c0080050020b0070030c0090050010a0070030b0090060020a0070040c0080050020a0060030c0080050020b0070030c0090050000c00900909009009090090090090900900909009009009090090090900900900909009009090090090090900900909009009090090090090900900909009009009090090090900900900909009009090060030c0090050010a0070030b008005001090070040c0080050020a0060030c0090040010a0060030c0090050010a0070030b0080050010a008005001090050020a0060030c0080040010a0060030c0090050010a0070030b0080050010a0070030b008005001090070040c0080050020a0060030c0080040010a0060030c0090050010a0070030b008005001090070040c0080050020a0060030c0080040010a0060030c0090050010a0060030c0090050010a0070030b008005001090070040c0080050020a0060030c0080040010a0070030b0080050010a0070040c0080050020a0060030c0080040010a0070030c0090050010a0070030b0080050020a0060030c0080040010a0060030c0090050050020a0060030c0090050010b0070030c0090050010a0070040c0080040020a0060030c0080050020a0060030c0090050010a0070030b0080040020a0060040c0090050020b0070030c00a0050010a0070030b0090050020a0070030c0080040020a0060030c0090050010a0070030c0090050030b007005001090050020a007004001090060020c0070050c0090060030b0080040020a0060030b0080040010a0060030b0080050010a0050040c0080050010a0060030c0080050010b0070030c007005001090070030b0070040020a0060030c0080040020a0070030b0090050010a0060040c0080050020a0060040c0080050010b0070030c007005001090070030c0080050020a0070030c0090050020a0070030c0090050020a0060040c0090050020a0060040c0090050010b0070030c0080050030b007004001090060020c008004002090060020a008004001090050030b0080040020a0060040b0080040c00a0060020b007005001090060030b0070050020a0060020c008004002090070030c008005002090070040c0080040020a0060040b0090050010a0060030b0080050020a0060040c0080050010b00700300108005001090070030c0080050020a007003001090050030a0070030b0090050020a0060040c0090050030b0070040c0090050010c0070040c0080060020b00700400a090060020b007003002090060020a005004001090050030b007004001090050040c0080040c00a0060020c007005001090060030b0070050020a0060020c008004002090060030b008004002090060030b0080040020a0060040b0080040010b0060030b0070050010a00600400207005003080060040030700500307006004003070050030800600400307005004090060040030700500409006005002070050030a0060050030700500400206004002060050030020600400307005004090060040030700500408007005003080050040a00600500307005004002060050030800500400206005002070050040020600500307006004002070050030800600400307005004080060040a006005003080050040020700500409006004002060050030b00600500207005003080060040030700500408006004003070050040800600400207005004090060040030700500400b060050020700500400b06005003070060040a0060050030700600400206005003070060040900600400307005004090070050030800500400b06005003070060050000700500308006004002060050030700600400206005003070060040a0070050030800600400307005004080060050000700500408006005002070050040a0060040020600500308006005002070050030800600400307005004080070050030800500408006005003070050040a006005003070050040a0060050020700500400006005003070060040000700500307006004080070050040700600409006004003070050040a0070050030800600400b06005003080060050000700500308006004002070050030700600400307005003070060040030700500308006004003070050040900600500b0700500409006005002070060040800600500307006003080060050030700600308006004003070060040900700500308005004090060050030800600509007005003070060040a006005003070060040a0060050030700600400b0700500308006004090070050040800600408007005004080060040a007005003080060040a00600500308006";
//存储-849~2100的每一年已经过去的闰年数。
public static double[] leapdouble = {0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 19, 19, 19, 20, 20, 20, 21, 21, 22, 22, 22, 23, 23, 23, 24, 24, 24, 25, 25, 26, 26, 26, 27, 27, 27, 28, 28, 29, 29, 29, 30, 30, 30, 31, 31, 31, 32, 32, 33, 33, 33, 34, 34, 34, 35, 35, 36, 36, 36, 37, 37, 37, 38, 38, 38, 39, 39, 40, 40, 40, 41, 41, 41, 42, 42, 43, 43, 43, 44, 44, 44, 45, 45, 46, 46, 46, 47, 47, 47, 48, 48, 48, 49, 49, 50, 50, 50, 51, 51, 52, 52, 52, 53, 53, 53, 54, 54, 54, 55, 55, 56, 56, 56, 56, 57, 57, 57, 58, 58, 59, 59, 59, 59, 60, 60, 61, 61, 62, 62, 63, 63, 64, 64, 64, 64, 65, 65, 65, 65, 66, 66, 66, 67, 67, 68, 68, 69, 69, 69, 69, 70, 71, 71, 71, 71, 71, 71, 72, 72, 73, 73, 74, 74, 74, 75, 75, 75, 75, 76, 76, 77, 77, 77, 77, 78, 79, 79, 79, 79, 79, 80, 80, 80, 81, 82, 82, 82, 83, 83, 84, 84, 84, 85, 85, 85, 86, 86, 86, 86, 87, 87, 87, 87, 88, 88, 89, 89, 90, 90, 91, 91, 91, 92, 92, 93, 93, 94, 94, 94, 94, 95, 95, 96, 96, 96, 96, 97, 97, 98, 98, 98, 99, 99, 100, 100, 100, 101, 101, 101, 102, 102, 102, 103, 103, 104, 104, 104, 105, 105, 105, 106, 106, 106, 107, 107, 107, 108, 108, 109, 109, 109, 110, 110, 111, 111, 111, 112, 112, 112, 113, 113, 114, 114, 114, 115, 115, 116, 116, 116, 117, 117, 117, 117, 118, 118, 119, 119, 119, 120, 120, 121, 121, 121, 122, 122, 122, 123, 123, 124, 124, 124, 124, 125, 125, 126, 126, 126, 126, 127, 127, 128, 128, 129, 129, 130, 130, 130, 130, 131, 131, 132, 132, 132, 133, 133, 133, 134, 134, 135, 135, 135, 136, 136, 136, 137, 137, 137, 138, 138, 139, 139, 139, 140, 140, 141, 141, 141, 142, 142, 142, 143, 143, 143, 144, 144, 144, 145, 145, 146, 146, 146, 147, 147, 147, 148, 148, 149, 149, 149, 150, 150, 150, 151, 151, 151, 152, 152, 153, 153, 153, 154, 154, 154, 155, 155, 156, 156, 156, 157, 157, 157, 158, 158, 158, 159, 159, 160, 160, 160, 161, 161, 161, 162, 162, 163, 163, 163, 164, 164, 164, 165, 165, 165, 166, 166, 167, 167, 167, 168, 168, 168, 169, 169, 170, 170, 170, 171, 171, 171, 172, 172, 172, 173, 173, 174, 174, 174, 175, 175, 175, 176, 176, 177, 177, 177, 178, 178, 178, 179, 179, 179, 180, 180, 181, 181, 181, 182, 182, 182, 183, 183, 184, 184, 184, 185, 185, 185, 186, 186, 186, 187, 187, 188, 188, 188, 189, 189, 189, 190, 190, 191, 191, 191, 192, 192, 192, 193, 193, 193, 194, 194, 195, 195, 195, 196, 196, 196, 197, 197, 198, 198, 198, 199, 199, 199, 200, 200, 200, 201, 201, 202, 202, 202, 203, 203, 203, 204, 204, 205, 205, 205, 206, 206, 206, 207, 207, 207, 208, 208, 209, 209, 209, 210, 210, 210, 211, 211, 212, 212, 212, 213, 213, 213, 214, 214, 214, 214, 214, 215, 215, 215, 216, 216, 216, 217, 217, 218, 218, 218, 219, 219, 219, 220, 220, 221, 221, 221, 222, 222, 222, 223, 223, 223, 224, 224, 225, 225, 225, 226, 226, 226, 227, 227, 228, 228, 228, 229, 229, 229, 230, 230, 230, 231, 231, 232, 232, 232, 233, 233, 233, 234, 234, 235, 235, 235, 236, 236, 236, 237, 237, 237, 238, 238, 239, 239, 239, 240, 240, 240, 241, 241, 242, 242, 242, 243, 243, 243, 244, 244, 244, 245, 245, 246, 246, 246, 247, 247, 247, 248, 248, 249, 249, 249, 250, 250, 250, 251, 251, 252, 252, 252, 253, 253, 253, 254, 254, 254, 255, 255, 256, 256, 256, 257, 257, 257, 258, 258, 259, 259, 259, 260, 260, 260, 261, 261, 261, 262, 262, 263, 263, 263, 264, 264, 264, 265, 265, 266, 266, 266, 267, 267, 267, 268, 268, 268, 269, 269, 270, 270, 270, 271, 271, 271, 272, 272, 273, 273, 273, 274, 274, 274, 275, 275, 276, 276, 276, 277, 277, 277, 278, 278, 278, 279, 279, 280, 280, 280, 281, 281, 281, 282, 282, 283, 283, 283, 284, 284, 284, 285, 285, 285, 286, 286, 287, 287, 287, 288, 288, 288, 289, 289, 290, 290, 290, 291, 291, 291, 292, 292, 292, 293, 293, 294, 294, 294, 295, 295, 295, 296, 296, 297, 297, 297, 298, 298, 298, 299, 299, 299, 300, 300, 301, 301, 301, 302, 302, 302, 303, 303, 304, 304, 304, 305, 305, 305, 306, 306, 306, 307, 307, 308, 308, 308, 309, 309, 309, 310, 310, 311, 311, 312, 312, 312, 313, 313, 313, 314, 314, 315, 315, 315, 316, 316, 316, 317, 317, 317, 318, 318, 319, 319, 319, 320, 320, 320, 321, 321, 322, 322, 322, 323, 323, 323, 324, 324, 325, 325, 325, 326, 326, 326, 327, 327, 327, 328, 328, 329, 329, 329, 330, 330, 330, 331, 331, 332, 332, 332, 333, 333, 333, 334, 334, 334, 335, 335, 336, 336, 336, 337, 337, 337, 338, 338, 339, 339, 339, 340, 340, 340, 341, 341, 341, 342, 342, 343, 343, 343, 344, 344, 344, 345, 345, 346, 346, 346, 347, 347, 347, 348, 348, 348, 349, 349, 350, 350, 350, 351, 351, 351, 352, 352, 353, 353, 353, 354, 354, 354, 355, 355, 355, 356, 356, 357, 357, 357, 358, 358, 358, 359, 359, 360, 360, 360, 361, 361, 361, 362, 362, 362, 363, 363, 364, 364, 364, 365, 365, 365, 366, 366, 367, 367, 367, 368, 368, 368, 369, 369, 369, 370, 370, 371, 371, 371, 372, 372, 372, 373, 373, 374, 374, 374, 375, 375, 375, 376, 376, 376, 377, 377, 378, 378, 378, 379, 379, 379, 380, 380, 381, 381, 381, 382, 382, 382, 383, 383, 383, 384, 384, 385, 385, 385, 386, 386, 386, 387, 387, 388, 388, 388, 389, 389, 389, 390, 390, 390, 391, 391, 392, 392, 392, 393, 393, 393, 394, 394, 395, 395, 395, 396, 396, 396, 397, 397, 397, 398, 398, 399, 399, 399, 400, 400, 400, 401, 401, 402, 402, 402, 403, 403, 403, 404, 404, 404, 405, 405, 406, 406, 406, 407, 407, 407, 408, 408, 409, 409, 409, 410, 410, 410, 411, 411, 411, 412, 412, 413, 413, 413, 414, 414, 414, 415, 415, 416, 416, 416, 417, 417, 417, 418, 418, 418, 419, 419, 420, 420, 420, 421, 421, 421, 422, 422, 423, 423, 423, 424, 424, 424, 425, 425, 425, 426, 426, 427, 427, 427, 428, 428, 428, 429, 429, 430, 430, 430, 431, 431, 431, 432, 432, 432, 433, 433, 434, 434, 434, 435, 435, 435, 436, 436, 437, 437, 437, 438, 438, 438, 439, 439, 439, 440, 440, 441, 441, 441, 442, 442, 442, 443, 443, 444, 444, 444, 445, 445, 445, 446, 446, 446, 447, 447, 448, 448, 448, 449, 449, 449, 450, 450, 451, 451, 451, 452, 452, 452, 453, 453, 453, 454, 454, 455, 455, 455, 456, 456, 456, 457, 457, 458, 458, 458, 459, 459, 459, 460, 460, 460, 461, 461, 462, 462, 462, 463, 463, 463, 464, 464, 465, 465, 465, 466, 466, 466, 467, 467, 467, 468, 468, 469, 469, 469, 470, 470, 470, 471, 471, 472, 472, 472, 473, 473, 473, 474, 474, 474, 475, 475, 475, 476, 476, 477, 477, 477, 478, 478, 478, 479, 479, 480, 480, 480, 481, 481, 481, 482, 482, 482, 483, 483, 484, 484, 484, 485, 485, 485, 486, 486, 487, 487, 487, 488, 488, 488, 489, 489, 489, 490, 490, 491, 491, 491, 492, 492, 492, 493, 493, 494, 494, 494, 495, 495, 495, 496, 496, 496, 497, 497, 498, 498, 498, 499, 499, 499, 500, 500, 501, 501, 501, 502, 502, 502, 503, 503, 503, 504, 504, 505, 505, 505, 506, 506, 506, 507, 507, 508, 508, 508, 509, 509, 509, 510, 510, 510, 511, 511, 512, 512, 512, 513, 513, 513, 514, 514, 515, 515, 515, 516, 516, 516, 517, 517, 517, 518, 518, 519, 519, 519, 520, 520, 520, 521, 521, 522, 522, 522, 523, 523, 523, 524, 524, 524, 525, 525, 526, 526, 526, 527, 527, 527, 528, 528, 529, 529, 529, 530, 530, 530, 531, 531, 531, 532, 532, 533, 533, 533, 534, 534, 534, 535, 535, 536, 536, 536, 537, 537, 537, 538, 538, 538, 539, 539, 540, 540, 540, 541, 541, 541, 542, 542, 543, 543, 543, 544, 544, 544, 545, 545, 545, 546, 546, 547, 547, 547, 548, 548, 548, 549, 549, 550, 550, 550, 551, 551, 551, 552, 552, 552, 553, 553, 554, 554, 554, 555, 555, 555, 556, 556, 557, 557, 557, 558, 558, 558, 559, 559, 559, 560, 560, 561, 561, 561, 562, 562, 562, 563, 563, 563, 564, 564, 565, 565, 565, 566, 566, 566, 567, 567, 568, 568, 568, 569, 569, 569, 570, 570, 570, 571, 571, 572, 572, 572, 573, 573, 573, 574, 574, 575, 575, 575, 576, 576, 576, 577, 577, 578, 578, 578, 579, 579, 579, 580, 580, 580, 581, 581, 582, 582, 582, 583, 583, 583, 584, 584, 584, 585, 585, 586, 586, 586, 587, 587, 587, 588, 588, 589, 589, 589, 590, 590, 590, 591, 591, 591, 592, 592, 593, 593, 593, 594, 594, 594, 595, 595, 596, 596, 596, 597, 597, 597, 598, 598, 598, 599, 599, 600, 600, 600, 601, 601, 601, 602, 602, 603, 603, 603, 604, 604, 604, 605, 605, 605, 606, 606, 607, 607, 607, 608, 608, 608, 609, 609, 610, 610, 610, 611, 611, 611, 612, 612, 612, 613, 613, 614, 614, 614, 615, 615, 615, 616, 616, 617, 617, 617, 618, 618, 618, 619, 619, 619, 620, 620, 621, 621, 621, 622, 622, 622, 623, 623, 624, 624, 624, 625, 625, 625, 626, 626, 626, 627, 627, 628, 628, 628, 629, 629, 629, 630, 630, 631, 631, 631, 632, 632, 632, 633, 633, 633, 634, 634, 635, 635, 635, 636, 636, 636, 637, 637, 638, 638, 638, 639, 639, 639, 640, 640, 640, 641, 641, 642, 642, 642, 643, 643, 643, 644, 644, 645, 645, 645, 646, 646, 646, 647, 647, 647, 648, 648, 649, 649, 649, 650, 650, 650, 651, 651, 652, 652, 652, 653, 653, 653, 654, 654, 654, 655, 655, 656, 656, 656, 657, 657, 657, 658, 658, 659, 659, 659, 660, 660, 660, 661, 661, 661, 662, 662, 663, 663, 663, 664, 664, 664, 665, 665, 666, 666, 666, 667, 667, 667, 668, 668, 668, 669, 669, 670, 670, 670, 671, 671, 671, 672, 672, 673, 673, 673, 674, 674, 674, 675, 675, 675, 676, 676, 677, 677, 677, 678, 678, 678, 679, 679, 680, 680, 680, 681, 681, 681, 682, 682, 682, 683, 683, 684, 684, 684, 685, 685, 685, 686, 686, 687, 687, 687, 688, 688, 688, 689, 689, 689, 690, 690, 691, 691, 691, 692, 692, 692, 693, 693, 694, 694, 694, 695, 695, 695, 696, 696, 696, 697, 697, 698, 698, 698, 699, 699, 699, 700, 700, 701, 701, 701, 702, 702, 702, 703, 703, 703, 704, 704, 705, 705, 705, 706, 706, 706, 707, 707, 707, 708, 708, 709, 709, 709, 710, 710, 710, 711, 711, 712, 712, 712, 713, 713, 713, 714, 714, 714, 715, 715, 716, 716, 716, 717, 717, 717, 718, 718, 719, 719, 719, 720, 720, 720, 721, 721, 721, 722, 722, 723, 723, 723, 724, 724, 724, 725, 725, 726, 726, 726, 727, 727, 727, 728, 728, 728, 729, 729, 730, 730, 730, 731, 731, 731, 732, 732, 733, 733, 733, 734, 734, 734, 735, 735, 736, 736, 736, 737, 737, 737, 738, 738, 738, 739, 739, 740, 740, 740, 741, 741, 741, 742, 742, 742, 743, 743, 744, 744, 744, 745, 745, 745, 746, 746, 747, 747, 747, 748, 748, 748, 749, 749, 749, 750, 750, 751, 751, 751, 752, 752, 752, 754, 754, 755, 755, 755, 756, 756, 756, 757, 757, 757, 758, 758, 759, 759, 759, 760, 760, 760, 761, 761, 762, 762, 762, 763, 763, 763, 764, 764, 764, 765, 765, 766, 766, 766, 767, 767, 767, 768, 768, 769, 769, 769, 770, 770, 770, 771, 771, 771, 772, 772, 773, 773, 773, 774, 774, 774, 775, 775, 776, 776, 776, 777, 777, 777, 778, 778, 778, 779, 779, 780, 780, 780, 781, 781, 781, 782, 782, 783, 783, 783, 784, 784, 784, 785, 785, 785, 786, 786, 787, 787, 787, 788, 788, 788, 789, 789, 790, 790, 790, 791, 791, 791, 792, 792, 792, 793, 793, 794, 794, 794, 795, 795, 795, 796, 796, 796, 797, 797, 798, 798, 798, 799, 799, 799, 800, 800, 801, 801, 801, 802, 802, 802, 803, 803, 804, 804, 804, 805, 805, 805, 806, 806, 806, 807, 807, 808, 808, 808, 809, 809, 809, 810, 810, 810, 811, 811, 812, 812, 812, 813, 813, 813, 814, 814, 815, 815, 815, 816, 816, 816, 817, 817, 818, 818, 818, 819, 819, 819, 820, 820, 820, 821, 821, 822, 822, 822, 823, 823, 823, 824, 824, 825, 825, 825, 826, 826, 826, 827, 827, 827, 828, 828, 829, 829, 829, 830, 830, 830, 831, 831, 832, 832, 832, 833, 833, 833, 834, 834, 834, 835, 835, 836, 836, 836, 837, 837, 837, 838, 838, 839, 839, 839, 840, 840, 840, 841, 841, 841, 842, 842, 843, 843, 843, 844, 844, 844, 845, 845, 845, 846, 846, 847, 847, 847, 848, 848, 848, 849, 849, 850, 850, 850, 851, 851, 851, 852, 852, 852, 853, 853, 854, 854, 854, 855, 855, 855, 856, 856, 857, 857, 857, 858, 858, 858, 859, 859, 859, 860, 860, 861, 861, 861, 862, 862, 862, 863, 863, 864, 864, 863, 864, 864, 864, 865, 865, 865, 866, 866, 867, 867, 867, 868, 868, 868, 869, 869, 870, 870, 870, 871, 871, 871, 872, 872, 873, 873, 873, 874, 874, 874, 875, 875, 875, 876, 876, 877, 877, 877, 878, 878, 878, 879, 879, 879, 880, 880, 881, 881, 881, 882, 882, 882, 883, 883, 884, 884, 884, 885, 885, 885, 886, 886, 886, 887, 887, 888, 888, 888, 889, 889, 889, 890, 890, 891, 891, 891, 892, 892, 892, 893, 893, 893, 894, 894, 895, 895, 895, 896, 896, 896, 897, 897, 898, 898, 898, 899, 899, 899, 900, 900, 900, 901, 901, 902, 902, 902, 903, 903, 903, 904, 904, 905, 905, 905, 906, 906, 906, 907, 907, 907, 908, 908, 909, 909, 909, 910, 910, 910, 911, 911, 912, 912, 912, 913, 913, 913, 914, 914, 914, 915, 915, 916, 916, 916, 917, 917, 917, 918, 918, 919, 919, 919, 920, 920, 920, 921, 921, 921, 922, 922, 923, 923, 923, 924, 924, 924, 925, 925, 925, 926, 926, 927, 927, 927, 928, 928, 928, 929, 929, 930, 930, 930, 931, 931, 931, 932, 932, 932, 933, 933, 934, 934, 934, 935, 935, 935, 936, 936, 937, 937, 937, 938, 938, 938, 939, 939, 939, 940, 940, 941, 941, 941, 942, 942, 942, 943, 943, 944, 944, 944, 945, 945, 945, 946, 946, 946, 947, 947, 948, 948, 948, 949, 949, 949, 950, 950, 951, 951, 951, 952, 952, 952, 953, 953, 953, 954, 954, 955, 955, 955, 956, 956, 956, 957, 957, 958, 958, 958, 959, 959, 959, 960, 960, 960, 961, 961, 962, 962, 962, 963, 963, 963, 964, 964, 965, 965, 965, 966, 966, 966, 967, 967, 967, 968, 968, 969, 969, 969, 970, 970, 970, 971, 971, 971, 972, 972, 973, 973, 973, 974, 974, 974, 975, 975, 976, 976, 976, 977, 977, 977, 978, 978, 978, 979, 979, 980, 980, 980, 981, 981, 981, 982, 982, 983, 983, 983, 984, 984, 984, 985, 985, 986, 986, 986, 987, 987, 987, 988, 988, 988, 989, 989, 990, 990, 990, 991, 991, 991, 992, 992, 993, 993, 993, 994, 994, 994, 995, 995, 995, 996, 996, 997, 997, 997, 998, 998, 998, 999, 999, 1000, 1000, 1000, 1001, 1001, 1001, 1002, 1002, 1002, 1003, 1003, 1004, 1004, 1004, 1005, 1005, 1005, 1006, 1006, 1006, 1007, 1007, 1008, 1008, 1008, 1009, 1009, 1009, 1010, 1010, 1011, 1011, 1011, 1012, 1012, 1012, 1013, 1013, 1013, 1014, 1014, 1015, 1015, 1015, 1016, 1016, 1016, 1017, 1017, 1018, 1018, 1018, 1019, 1019, 1019, 1020, 1020, 1020, 1021, 1021, 1022, 1022, 1022, 1023, 1023, 1023, 1024, 1024, 1025, 1025, 1025, 1026, 1026, 1026, 1027, 1027, 1027, 1028, 1028, 1029, 1029, 1029, 1030, 1030, 1030, 1031, 1031, 1032, 1032, 1032, 1033, 1033, 1033, 1034, 1034, 1034, 1035, 1035, 1036, 1036, 1036, 1037, 1037, 1037, 1038, 1038, 1039, 1039, 1039, 1040, 1040, 1040, 1041, 1041, 1042, 1042, 1042, 1043, 1043, 1043, 1044, 1044, 1044, 1045, 1045, 1046, 1046, 1046, 1047, 1047, 1047, 1048, 1048, 1048, 1049, 1049, 1050, 1050, 1050, 1051, 1051, 1051, 1052, 1052, 1053, 1053, 1053, 1054, 1054, 1054, 1055, 1055, 1055, 1056, 1056, 1057, 1057, 1057, 1058, 1058, 1058, 1059, 1059, 1060, 1060, 1060, 1061, 1061, 1061, 1062, 1062, 1062, 1063, 1063, 1064, 1064, 1064, 1065, 1065, 1065, 1066, 1066, 1067, 1067, 1067, 1068, 1068, 1068, 1069, 1069, 1069, 1070, 1070, 1071, 1071, 1071, 1072, 1072, 1072, 1073, 1073, 1074, 1074, 1074, 1075, 1075, 1075, 1076, 1076, 1076, 1077, 1077, 1078, 1078, 1078, 1079, 1079, 1079, 1080, 1080, 1081, 1081, 1081, 1082, 1082, 1082, 1083, 1083, 1083, 1084, 1084};
//存储-849~3000的每一年已经过去的闰年数。
////public static double[] leapdouble = {0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 19, 19, 19, 20, 20, 20, 21, 21, 22, 22, 22, 23, 23, 23, 24, 24, 24, 25, 25, 26, 26, 26, 27, 27, 27, 28, 28, 29, 29, 29, 30, 30, 30, 31, 31, 31, 32, 32, 33, 33, 33, 34, 34, 34, 35, 35, 36, 36, 36, 37, 37, 37, 38, 38, 38, 39, 39, 40, 40, 40, 41, 41, 41, 42, 42, 43, 43, 43, 44, 44, 44, 45, 45, 46, 46, 46, 47, 47, 47, 48, 48, 48, 49, 49, 50, 50, 50, 51, 51, 52, 52, 52, 53, 53, 53, 54, 54, 54, 55, 55, 56, 56, 56, 56, 57, 57, 57, 58, 58, 59, 59, 59, 59, 60, 60, 61, 61, 62, 62, 63, 63, 64, 64, 64, 64, 65, 65, 65, 65, 66, 66, 66, 67, 67, 68, 68, 69, 69, 69, 69, 70, 71, 71, 71, 71, 71, 71, 72, 72, 73, 73, 74, 74, 74, 75, 75, 75, 75, 76, 76, 77, 77, 77, 77, 78, 79, 79, 79, 79, 79, 80, 80, 80, 81, 82, 82, 82, 83, 83, 84, 84, 84, 85, 85, 85, 86, 86, 86, 86, 87, 87, 87, 87, 88, 88, 89, 89, 90, 90, 91, 91, 91, 92, 92, 93, 93, 94, 94, 94, 94, 95, 95, 96, 96, 96, 96, 97, 97, 98, 98, 98, 99, 99, 100, 100, 100, 101, 101, 101, 102, 102, 102, 103, 103, 104, 104, 104, 105, 105, 105, 106, 106, 106, 107, 107, 107, 108, 108, 109, 109, 109, 110, 110, 111, 111, 111, 112, 112, 112, 113, 113, 114, 114, 114, 115, 115, 116, 116, 116, 117, 117, 117, 117, 118, 118, 119, 119, 119, 120, 120, 121, 121, 121, 122, 122, 122, 123, 123, 124, 124, 124, 124, 125, 125, 126, 126, 126, 126, 127, 127, 128, 128, 129, 129, 130, 130, 130, 130, 131, 131, 132, 132, 132, 133, 133, 133, 134, 134, 135, 135, 135, 136, 136, 136, 137, 137, 137, 138, 138, 139, 139, 139, 140, 140, 141, 141, 141, 142, 142, 142, 143, 143, 143, 144, 144, 144, 145, 145, 146, 146, 146, 147, 147, 147, 148, 148, 149, 149, 149, 150, 150, 150, 151, 151, 151, 152, 152, 153, 153, 153, 154, 154, 154, 155, 155, 156, 156, 156, 157, 157, 157, 158, 158, 158, 159, 159, 160, 160, 160, 161, 161, 161, 162, 162, 163, 163, 163, 164, 164, 164, 165, 165, 165, 166, 166, 167, 167, 167, 168, 168, 168, 169, 169, 170, 170, 170, 171, 171, 171, 172, 172, 172, 173, 173, 174, 174, 174, 175, 175, 175, 176, 176, 177, 177, 177, 178, 178, 178, 179, 179, 179, 180, 180, 181, 181, 181, 182, 182, 182, 183, 183, 184, 184, 184, 185, 185, 185, 186, 186, 186, 187, 187, 188, 188, 188, 189, 189, 189, 190, 190, 191, 191, 191, 192, 192, 192, 193, 193, 193, 194, 194, 195, 195, 195, 196, 196, 196, 197, 197, 198, 198, 198, 199, 199, 199, 200, 200, 200, 201, 201, 202, 202, 202, 203, 203, 203, 204, 204, 205, 205, 205, 206, 206, 206, 207, 207, 207, 208, 208, 209, 209, 209, 210, 210, 210, 211, 211, 212, 212, 212, 213, 213, 213, 214, 214, 214, 214, 214, 215, 215, 215, 216, 216, 216, 217, 217, 218, 218, 218, 219, 219, 219, 220, 220, 221, 221, 221, 222, 222, 222, 223, 223, 223, 224, 224, 225, 225, 225, 226, 226, 226, 227, 227, 228, 228, 228, 229, 229, 229, 230, 230, 230, 231, 231, 232, 232, 232, 233, 233, 233, 234, 234, 235, 235, 235, 236, 236, 236, 237, 237, 237, 238, 238, 239, 239, 239, 240, 240, 240, 241, 241, 242, 242, 242, 243, 243, 243, 244, 244, 244, 245, 245, 246, 246, 246, 247, 247, 247, 248, 248, 249, 249, 249, 250, 250, 250, 251, 251, 252, 252, 252, 253, 253, 253, 254, 254, 254, 255, 255, 256, 256, 256, 257, 257, 257, 258, 258, 259, 259, 259, 260, 260, 260, 261, 261, 261, 262, 262, 263, 263, 263, 264, 264, 264, 265, 265, 266, 266, 266, 267, 267, 267, 268, 268, 268, 269, 269, 270, 270, 270, 271, 271, 271, 272, 272, 273, 273, 273, 274, 274, 274, 275, 275, 276, 276, 276, 277, 277, 277, 278, 278, 278, 279, 279, 280, 280, 280, 281, 281, 281, 282, 282, 283, 283, 283, 284, 284, 284, 285, 285, 285, 286, 286, 287, 287, 287, 288, 288, 288, 289, 289, 290, 290, 290, 291, 291, 291, 292, 292, 292, 293, 293, 294, 294, 294, 295, 295, 295, 296, 296, 297, 297, 297, 298, 298, 298, 299, 299, 299, 300, 300, 301, 301, 301, 302, 302, 302, 303, 303, 304, 304, 304, 305, 305, 305, 306, 306, 306, 307, 307, 308, 308, 308, 309, 309, 309, 310, 310, 311, 311, 312, 312, 312, 313, 313, 313, 314, 314, 315, 315, 315, 316, 316, 316, 317, 317, 317, 318, 318, 319, 319, 319, 320, 320, 320, 321, 321, 322, 322, 322, 323, 323, 323, 324, 324, 325, 325, 325, 326, 326, 326, 327, 327, 327, 328, 328, 329, 329, 329, 330, 330, 330, 331, 331, 332, 332, 332, 333, 333, 333, 334, 334, 334, 335, 335, 336, 336, 336, 337, 337, 337, 338, 338, 339, 339, 339, 340, 340, 340, 341, 341, 341, 342, 342, 343, 343, 343, 344, 344, 344, 345, 345, 346, 346, 346, 347, 347, 347, 348, 348, 348, 349, 349, 350, 350, 350, 351, 351, 351, 352, 352, 353, 353, 353, 354, 354, 354, 355, 355, 355, 356, 356, 357, 357, 357, 358, 358, 358, 359, 359, 360, 360, 360, 361, 361, 361, 362, 362, 362, 363, 363, 364, 364, 364, 365, 365, 365, 366, 366, 367, 367, 367, 368, 368, 368, 369, 369, 369, 370, 370, 371, 371, 371, 372, 372, 372, 373, 373, 374, 374, 374, 375, 375, 375, 376, 376, 376, 377, 377, 378, 378, 378, 379, 379, 379, 380, 380, 381, 381, 381, 382, 382, 382, 383, 383, 383, 384, 384, 385, 385, 385, 386, 386, 386, 387, 387, 388, 388, 388, 389, 389, 389, 390, 390, 390, 391, 391, 392, 392, 392, 393, 393, 393, 394, 394, 395, 395, 395, 396, 396, 396, 397, 397, 397, 398, 398, 399, 399, 399, 400, 400, 400, 401, 401, 402, 402, 402, 403, 403, 403, 404, 404, 404, 405, 405, 406, 406, 406, 407, 407, 407, 408, 408, 409, 409, 409, 410, 410, 410, 411, 411, 411, 412, 412, 413, 413, 413, 414, 414, 414, 415, 415, 416, 416, 416, 417, 417, 417, 418, 418, 418, 419, 419, 420, 420, 420, 421, 421, 421, 422, 422, 423, 423, 423, 424, 424, 424, 425, 425, 425, 426, 426, 427, 427, 427, 428, 428, 428, 429, 429, 430, 430, 430, 431, 431, 431, 432, 432, 432, 433, 433, 434, 434, 434, 435, 435, 435, 436, 436, 437, 437, 437, 438, 438, 438, 439, 439, 439, 440, 440, 441, 441, 441, 442, 442, 442, 443, 443, 444, 444, 444, 445, 445, 445, 446, 446, 446, 447, 447, 448, 448, 448, 449, 449, 449, 450, 450, 451, 451, 451, 452, 452, 452, 453, 453, 453, 454, 454, 455, 455, 455, 456, 456, 456, 457, 457, 458, 458, 458, 459, 459, 459, 460, 460, 460, 461, 461, 462, 462, 462, 463, 463, 463, 464, 464, 465, 465, 465, 466, 466, 466, 467, 467, 467, 468, 468, 469, 469, 469, 470, 470, 470, 471, 471, 472, 472, 472, 473, 473, 473, 474, 474, 474, 475, 475, 475, 476, 476, 477, 477, 477, 478, 478, 478, 479, 479, 480, 480, 480, 481, 481, 481, 482, 482, 482, 483, 483, 484, 484, 484, 485, 485, 485, 486, 486, 487, 487, 487, 488, 488, 488, 489, 489, 489, 490, 490, 491, 491, 491, 492, 492, 492, 493, 493, 494, 494, 494, 495, 495, 495, 496, 496, 496, 497, 497, 498, 498, 498, 499, 499, 499, 500, 500, 501, 501, 501, 502, 502, 502, 503, 503, 503, 504, 504, 505, 505, 505, 506, 506, 506, 507, 507, 508, 508, 508, 509, 509, 509, 510, 510, 510, 511, 511, 512, 512, 512, 513, 513, 513, 514, 514, 515, 515, 515, 516, 516, 516, 517, 517, 517, 518, 518, 519, 519, 519, 520, 520, 520, 521, 521, 522, 522, 522, 523, 523, 523, 524, 524, 524, 525, 525, 526, 526, 526, 527, 527, 527, 528, 528, 529, 529, 529, 530, 530, 530, 531, 531, 531, 532, 532, 533, 533, 533, 534, 534, 534, 535, 535, 536, 536, 536, 537, 537, 537, 538, 538, 538, 539, 539, 540, 540, 540, 541, 541, 541, 542, 542, 543, 543, 543, 544, 544, 544, 545, 545, 545, 546, 546, 547, 547, 547, 548, 548, 548, 549, 549, 550, 550, 550, 551, 551, 551, 552, 552, 552, 553, 553, 554, 554, 554, 555, 555, 555, 556, 556, 557, 557, 557, 558, 558, 558, 559, 559, 559, 560, 560, 561, 561, 561, 562, 562, 562, 563, 563, 563, 564, 564, 565, 565, 565, 566, 566, 566, 567, 567, 568, 568, 568, 569, 569, 569, 570, 570, 570, 571, 571, 572, 572, 572, 573, 573, 573, 574, 574, 575, 575, 575, 576, 576, 576, 577, 577, 578, 578, 578, 579, 579, 579, 580, 580, 580, 581, 581, 582, 582, 582, 583, 583, 583, 584, 584, 584, 585, 585, 586, 586, 586, 587, 587, 587, 588, 588, 589, 589, 589, 590, 590, 590, 591, 591, 591, 592, 592, 593, 593, 593, 594, 594, 594, 595, 595, 596, 596, 596, 597, 597, 597, 598, 598, 598, 599, 599, 600, 600, 600, 601, 601, 601, 602, 602, 603, 603, 603, 604, 604, 604, 605, 605, 605, 606, 606, 607, 607, 607, 608, 608, 608, 609, 609, 610, 610, 610, 611, 611, 611, 612, 612, 612, 613, 613, 614, 614, 614, 615, 615, 615, 616, 616, 617, 617, 617, 618, 618, 618, 619, 619, 619, 620, 620, 621, 621, 621, 622, 622, 622, 623, 623, 624, 624, 624, 625, 625, 625, 626, 626, 626, 627, 627, 628, 628, 628, 629, 629, 629, 630, 630, 631, 631, 631, 632, 632, 632, 633, 633, 633, 634, 634, 635, 635, 635, 636, 636, 636, 637, 637, 638, 638, 638, 639, 639, 639, 640, 640, 640, 641, 641, 642, 642, 642, 643, 643, 643, 644, 644, 645, 645, 645, 646, 646, 646, 647, 647, 647, 648, 648, 649, 649, 649, 650, 650, 650, 651, 651, 652, 652, 652, 653, 653, 653, 654, 654, 654, 655, 655, 656, 656, 656, 657, 657, 657, 658, 658, 659, 659, 659, 660, 660, 660, 661, 661, 661, 662, 662, 663, 663, 663, 664, 664, 664, 665, 665, 666, 666, 666, 667, 667, 667, 668, 668, 668, 669, 669, 670, 670, 670, 671, 671, 671, 672, 672, 673, 673, 673, 674, 674, 674, 675, 675, 675, 676, 676, 677, 677, 677, 678, 678, 678, 679, 679, 680, 680, 680, 681, 681, 681, 682, 682, 682, 683, 683, 684, 684, 684, 685, 685, 685, 686, 686, 687, 687, 687, 688, 688, 688, 689, 689, 689, 690, 690, 691, 691, 691, 692, 692, 692, 693, 693, 694, 694, 694, 695, 695, 695, 696, 696, 696, 697, 697, 698, 698, 698, 699, 699, 699, 700, 700, 701, 701, 701, 702, 702, 702, 703, 703, 703, 704, 704, 705, 705, 705, 706, 706, 706, 707, 707, 707, 708, 708, 709, 709, 709, 710, 710, 710, 711, 711, 712, 712, 712, 713, 713, 713, 714, 714, 714, 715, 715, 716, 716, 716, 717, 717, 717, 718, 718, 719, 719, 719, 720, 720, 720, 721, 721, 721, 722, 722, 723, 723, 723, 724, 724, 724, 725, 725, 726, 726, 726, 727, 727, 727, 728, 728, 728, 729, 729, 730, 730, 730, 731, 731, 731, 732, 732, 733, 733, 733, 734, 734, 734, 735, 735, 736, 736, 736, 737, 737, 737, 738, 738, 738, 739, 739, 740, 740, 740, 741, 741, 741, 742, 742, 742, 743, 743, 744, 744, 744, 745, 745, 745, 746, 746, 747, 747, 747, 748, 748, 748, 749, 749, 749, 750, 750, 751, 751, 751, 752, 752, 752, 754, 754, 755, 755, 755, 756, 756, 756, 757, 757, 757, 758, 758, 759, 759, 759, 760, 760, 760, 761, 761, 762, 762, 762, 763, 763, 763, 764, 764, 764, 765, 765, 766, 766, 766, 767, 767, 767, 768, 768, 769, 769, 769, 770, 770, 770, 771, 771, 771, 772, 772, 773, 773, 773, 774, 774, 774, 775, 775, 776, 776, 776, 777, 777, 777, 778, 778, 778, 779, 779, 780, 780, 780, 781, 781, 781, 782, 782, 783, 783, 783, 784, 784, 784, 785, 785, 785, 786, 786, 787, 787, 787, 788, 788, 788, 789, 789, 790, 790, 790, 791, 791, 791, 792, 792, 792, 793, 793, 794, 794, 794, 795, 795, 795, 796, 796, 796, 797, 797, 798, 798, 798, 799, 799, 799, 800, 800, 801, 801, 801, 802, 802, 802, 803, 803, 804, 804, 804, 805, 805, 805, 806, 806, 806, 807, 807, 808, 808, 808, 809, 809, 809, 810, 810, 810, 811, 811, 812, 812, 812, 813, 813, 813, 814, 814, 815, 815, 815, 816, 816, 816, 817, 817, 818, 818, 818, 819, 819, 819, 820, 820, 820, 821, 821, 822, 822, 822, 823, 823, 823, 824, 824, 825, 825, 825, 826, 826, 826, 827, 827, 827, 828, 828, 829, 829, 829, 830, 830, 830, 831, 831, 832, 832, 832, 833, 833, 833, 834, 834, 834, 835, 835, 836, 836, 836, 837, 837, 837, 838, 838, 839, 839, 839, 840, 840, 840, 841, 841, 841, 842, 842, 843, 843, 843, 844, 844, 844, 845, 845, 845, 846, 846, 847, 847, 847, 848, 848, 848, 849, 849, 850, 850, 850, 851, 851, 851, 852, 852, 852, 853, 853, 854, 854, 854, 855, 855, 855, 856, 856, 857, 857, 857, 858, 858, 858, 859, 859, 859, 860, 860, 861, 861, 861, 862, 862, 862, 863, 863, 864, 864, 863, 864, 864, 864, 865, 865, 865, 866, 866, 867, 867, 867, 868, 868, 868, 869, 869, 870, 870, 870, 871, 871, 871, 872, 872, 873, 873, 873, 874, 874, 874, 875, 875, 875, 876, 876, 877, 877, 877, 878, 878, 878, 879, 879, 879, 880, 880, 881, 881, 881, 882, 882, 882, 883, 883, 884, 884, 884, 885, 885, 885, 886, 886, 886, 887, 887, 888, 888, 888, 889, 889, 889, 890, 890, 891, 891, 891, 892, 892, 892, 893, 893, 893, 894, 894, 895, 895, 895, 896, 896, 896, 897, 897, 898, 898, 898, 899, 899, 899, 900, 900, 900, 901, 901, 902, 902, 902, 903, 903, 903, 904, 904, 905, 905, 905, 906, 906, 906, 907, 907, 907, 908, 908, 909, 909, 909, 910, 910, 910, 911, 911, 912, 912, 912, 913, 913, 913, 914, 914, 914, 915, 915, 916, 916, 916, 917, 917, 917, 918, 918, 919, 919, 919, 920, 920, 920, 921, 921, 921, 922, 922, 923, 923, 923, 924, 924, 924, 925, 925, 925, 926, 926, 927, 927, 927, 928, 928, 928, 929, 929, 930, 930, 930, 931, 931, 931, 932, 932, 932, 933, 933, 934, 934, 934, 935, 935, 935, 936, 936, 937, 937, 937, 938, 938, 938, 939, 939, 939, 940, 940, 941, 941, 941, 942, 942, 942, 943, 943, 944, 944, 944, 945, 945, 945, 946, 946, 946, 947, 947, 948, 948, 948, 949, 949, 949, 950, 950, 951, 951, 951, 952, 952, 952, 953, 953, 953, 954, 954, 955, 955, 955, 956, 956, 956, 957, 957, 958, 958, 958, 959, 959, 959, 960, 960, 960, 961, 961, 962, 962, 962, 963, 963, 963, 964, 964, 965, 965, 965, 966, 966, 966, 967, 967, 967, 968, 968, 969, 969, 969, 970, 970, 970, 971, 971, 971, 972, 972, 973, 973, 973, 974, 974, 974, 975, 975, 976, 976, 976, 977, 977, 977, 978, 978, 978, 979, 979, 980, 980, 980, 981, 981, 981, 982, 982, 983, 983, 983, 984, 984, 984, 985, 985, 986, 986, 986, 987, 987, 987, 988, 988, 988, 989, 989, 990, 990, 990, 991, 991, 991, 992, 992, 993, 993, 993, 994, 994, 994, 995, 995, 995, 996, 996, 997, 997, 997, 998, 998, 998, 999, 999, 1000, 1000, 1000, 1001, 1001, 1001, 1002, 1002, 1002, 1003, 1003, 1004, 1004, 1004, 1005, 1005, 1005, 1006, 1006, 1006, 1007, 1007, 1008, 1008, 1008, 1009, 1009, 1009, 1010, 1010, 1011, 1011, 1011, 1012, 1012, 1012, 1013, 1013, 1013, 1014, 1014, 1015, 1015, 1015, 1016, 1016, 1016, 1017, 1017, 1018, 1018, 1018, 1019, 1019, 1019, 1020, 1020, 1020, 1021, 1021, 1022, 1022, 1022, 1023, 1023, 1023, 1024, 1024, 1025, 1025, 1025, 1026, 1026, 1026, 1027, 1027, 1027, 1028, 1028, 1029, 1029, 1029, 1030, 1030, 1030, 1031, 1031, 1032, 1032, 1032, 1033, 1033, 1033, 1034, 1034, 1034, 1035, 1035, 1036, 1036, 1036, 1037, 1037, 1037, 1038, 1038, 1039, 1039, 1039, 1040, 1040, 1040, 1041, 1041, 1042, 1042, 1042, 1043, 1043, 1043, 1044, 1044, 1044, 1045, 1045, 1046, 1046, 1046, 1047, 1047, 1047, 1048, 1048, 1048, 1049, 1049, 1050, 1050, 1050, 1051, 1051, 1051, 1052, 1052, 1053, 1053, 1053, 1054, 1054, 1054, 1055, 1055, 1055, 1056, 1056, 1057, 1057, 1057, 1058, 1058, 1058, 1059, 1059, 1060, 1060, 1060, 1061, 1061, 1061, 1062, 1062, 1062, 1063, 1063, 1064, 1064, 1064, 1065, 1065, 1065, 1066, 1066, 1067, 1067, 1067, 1068, 1068, 1068, 1069, 1069, 1069, 1070, 1070, 1071, 1071, 1071, 1072, 1072, 1072, 1073, 1073, 1074, 1074, 1074, 1075, 1075, 1075, 1076, 1076, 1076, 1077, 1077, 1078, 1078, 1078, 1079, 1079, 1079, 1080, 1080, 1081, 1081, 1081, 1082, 1082, 1082, 1083, 1083, 1083, 1084, 1084, 1085, 1085, 1085, 1086, 1086, 1086, 1087, 1087, 1088, 1088, 1088, 1089, 1089, 1089, 1090, 1090, 1090, 1091, 1091, 1092, 1092, 1092, 1093, 1093, 1093, 1094, 1094, 1094, 1095, 1095, 1096, 1096, 1096, 1097, 1097, 1097, 1098, 1098, 1099, 1099, 1099, 1100, 1100, 1100, 1101, 1101, 1101, 1102, 1102, 1103, 1103, 1103, 1104, 1104, 1104, 1105, 1105, 1106, 1106, 1106, 1107, 1107, 1107, 1108, 1108, 1109, 1109, 1109, 1110, 1110, 1110, 1111, 1111, 1111, 1112, 1112, 1113, 1113, 1113, 1114, 1114, 1114, 1115, 1115, 1115, 1116, 1116, 1117, 1117, 1117, 1118, 1118, 1118, 1119, 1119, 1120, 1120, 1120, 1121, 1121, 1121, 1122, 1122, 1123, 1123, 1123, 1124, 1124, 1124, 1125, 1125, 1125, 1126, 1126, 1127, 1127, 1127, 1128, 1128, 1128, 1129, 1129, 1130, 1130, 1130, 1131, 1131, 1131, 1132, 1132, 1132, 1133, 1133, 1134, 1134, 1134, 1135, 1135, 1135, 1136, 1136, 1136, 1137, 1137, 1138, 1138, 1138, 1139, 1139, 1139, 1140, 1140, 1141, 1141, 1141, 1142, 1142, 1142, 1143, 1143, 1143, 1143, 1143, 1144, 1144, 1144, 1145, 1145, 1145, 1146, 1146, 1147, 1147, 1147, 1148, 1148, 1148, 1149, 1149, 1149, 1150, 1150, 1151, 1151, 1151, 1152, 1152, 1152, 1153, 1153, 1154, 1154, 1154, 1155, 1155, 1155, 1156, 1156, 1156, 1157, 1157, 1158, 1158, 1158, 1159, 1159, 1159, 1160, 1160, 1161, 1161, 1161, 1162, 1162, 1162, 1163, 1163, 1164, 1164, 1164, 1165, 1165, 1165, 1166, 1166, 1166, 1167, 1167, 1168, 1168, 1168, 1169, 1169, 1169, 1170, 1170, 1170, 1171, 1171, 1172, 1172, 1172, 1173, 1173, 1173, 1174, 1174, 1175, 1175, 1175, 1176, 1176, 1176, 1177, 1177, 1177, 1177, 1177, 1178, 1178, 1178, 1179, 1179, 1179, 1180, 1180, 1181, 1181, 1181, 1182, 1182, 1182, 1183, 1183, 1183, 1184, 1184, 1185, 1185, 1185, 1186, 1186, 1186, 1187, 1187, 1188, 1188, 1188, 1189, 1189, 1189, 1190, 1190, 1190, 1191, 1191, 1192, 1192, 1192, 1193, 1193, 1193, 1194, 1194, 1195, 1195, 1195, 1196, 1196, 1196, 1197, 1197, 1197, 1198, 1198, 1199, 1199, 1199, 1200, 1200, 1200, 1201, 1201, 1202, 1202, 1202, 1203, 1203, 1203, 1204, 1204, 1204, 1205, 1205, 1206, 1206, 1206, 1207, 1207, 1207, 1208, 1208, 1209, 1209, 1209, 1210, 1210, 1210, 1211, 1211, 1211, 1212, 1212, 1213, 1213, 1213, 1214, 1214, 1214, 1215, 1215, 1216, 1216, 1216, 1217, 1217, 1217, 1218, 1218, 1218, 1219, 1219, 1220, 1220, 1220, 1221, 1221, 1221, 1222, 1222, 1223, 1223, 1223, 1224, 1224, 1224, 1225, 1225, 1225, 1226, 1226, 1227, 1227, 1227, 1228, 1228, 1228, 1229, 1229, 1230, 1230, 1230, 1231, 1231, 1231, 1232, 1232, 1232, 1233, 1233, 1234, 1234, 1234, 1235, 1235, 1235, 1236, 1236, 1236, 1236, 1236, 1237, 1237, 1237, 1238, 1238, 1238, 1239, 1239, 1240, 1240, 1240, 1241, 1241, 1241, 1242, 1242, 1242, 1242, 1242, 1243, 1243, 1243, 1244, 1244, 1244, 1245, 1245, 1246, 1246, 1246, 1247, 1247, 1247, 1248, 1248, 1249, 1249, 1249, 1250, 1250, 1250, 1251, 1251, 1251, 1252, 1252, 1253, 1253, 1253, 1254, 1254, 1254, 1255, 1255, 1256, 1256, 1256, 1257, 1257, 1257, 1258, 1258, 1258, 1259, 1259, 1260, 1260, 1260, 1261, 1261, 1261, 1262, 1262, 1263, 1263, 1263, 1264, 1264, 1264, 1265, 1265, 1265, 1266, 1266, 1267, 1267, 1267, 1268, 1268, 1268, 1269, 1269, 1269, 1270, 1270, 1271, 1271, 1271, 1272, 1272, 1272, 1273, 1273, 1274, 1274, 1274, 1275, 1275, 1275, 1276, 1276, 1276, 1276, 1276, 1277, 1277, 1277, 1278, 1278, 1278, 1279, 1279, 1280, 1280, 1280, 1281, 1281, 1281, 1282, 1282, 1282, 1283, 1283, 1284, 1284, 1284, 1285, 1285, 1285, 1286, 1286, 1287, 1287, 1287, 1288, 1288, 1288, 1289, 1289, 1289, 1290, 1290, 1291, 1291, 1291, 1292, 1292, 1292, 1293, 1293, 1294, 1294, 1294, 1295, 1295, 1295, 1296, 1296, 1296, 1297, 1297, 1298, 1298, 1298, 1299, 1299, 1299, 1300, 1300, 1301, 1301, 1301, 1302, 1302, 1302, 1303, 1303, 1303, 1304, 1304, 1305, 1305, 1305, 1306, 1306, 1306, 1307, 1307, 1308, 1308, 1308, 1309, 1309, 1309, 1310, 1310, 1310, 1311, 1311, 1312, 1312, 1312, 1313, 1313, 1313, 1314, 1314, 1315, 1315, 1315, 1316, 1316, 1316, 1317, 1317, 1317, 1318, 1318, 1319, 1319, 1319, 1320, 1320, 1320, 1321, 1321, 1322, 1322, 1322, 1323, 1323, 1323, 1324, 1324, 1324, 1325, 1325, 1326, 1326, 1326, 1327, 1327, 1327, 1328, 1328, 1329, 1329, 1329, 1330, 1330, 1330, 1331, 1331, 1331, 1332, 1332, 1333, 1333, 1333, 1334, 1334, 1334, 1335, 1335, 1336, 1336, 1336, 1337, 1337, 1337, 1338, 1338, 1338, 1339, 1339, 1340, 1340, 1340, 1341, 1341, 1341, 1342, 1342, 1343, 1343, 1343, 1344, 1344, 1344, 1345, 1345, 1345, 1346, 1346, 1347, 1347, 1347, 1348, 1348, 1348, 1349, 1349, 1350, 1350, 1350, 1351, 1351, 1351, 1352, 1352, 1352, 1353, 1353, 1354, 1354, 1354, 1355, 1355, 1355, 1356, 1356, 1357, 1357, 1357, 1358, 1358, 1358, 1359, 1359, 1359, 1360, 1360, 1361, 1361, 1361, 1362, 1362, 1362, 1363, 1363, 1364, 1364, 1364, 1365, 1365, 1365, 1366, 1366, 1366, 1367, 1367, 1368, 1368, 1368, 1369, 1369, 1369, 1370, 1370, 1371, 1371, 1371, 1372, 1372, 1372, 1373, 1373, 1373, 1374, 1374, 1375, 1375, 1375, 1376, 1376, 1376, 1377, 1377, 1377, 1378, 1378, 1379, 1379, 1379, 1380, 1380, 1380, 1381, 1381, 1382, 1382, 1382, 1383, 1383, 1383, 1384, 1384, 1385, 1385, 1385, 1386, 1386, 1386, 1387, 1387, 1387, 1388, 1388, 1389, 1389, 1389, 1390, 1390, 1390, 1391, 1391, 1392, 1392, 1392, 1393, 1393, 1393, 1394, 1394, 1394, 1395, 1395, 1396, 1396, 1396, 1397, 1397, 1397, 1398, 1398, 1399, 1399, 1399, 1400, 1400, 1400, 1401, 1401, 1401, 1402, 1402, 1403, 1403, 1403, 1404, 1404, 1404, 1405, 1405, 1406, 1406, 1406, 1407, 1407, 1407, 1408, 1408, 1408, 1409, 1409, 1410, 1410, 1410, 1411};
//预先定义数学函数。
@SimpleFunction//双精度小数到整数。
public static int Doin(double x) {
int i = (int) x;
return i;
}
@SimpleFunction//圆周率。PI = 3.141592653589793D;//PI = 3.14159265359
public static double PI() {
return Math.PI;
}
public static double sin(double x) {
return Math.sin(x);
}
public static double cos(double x) {
return Math.cos(x);
}
public static double abs(double x) {
return Math.abs(x);
}
public static double floor(double x) {
//取整。
return Math.floor(x);
}
public static double round(double x) {
return Math.round(x);
}
public static double tail(double x) {
return x-floor(x);
}
public static double rem(double x,double w) {
//广义求余
return tail(x/w)*w;
}
public static double nnr(double x,double w) {
//非负余数
if (x<0) {
x += (-x*w);
}
return x%w;
}
@SimpleFunction//16进制转二进制
public static String Hex2Bin(String hexString) {
if (hexString == null || hexString.length() % 2 != 0)
return null;
String bString = "", tmp;
for (int i = 0; i < hexString.length(); i++)
{
tmp = "0000" + Integer.toBinaryString(Integer.parseInt(hexString.substring(i, i + 1), 16));
bString += tmp.substring(tmp.length() - 4);
}
return bString;
}
@SimpleFunction//取文本中间
public static String charAt(String paramString, int paramInt1, int paramInt2) {
if (("".equals(paramString)) || (paramInt1 < 0) || (paramInt2 <= 0) || (paramInt1 > paramString.length())) {
return "";
}
int i = paramInt1 + paramInt2;
paramInt2 = i;
if (i > paramString.length()) {
paramInt2 = paramString.length();
}
return paramString.substring(paramInt1, paramInt2);
}
@SimpleFunction//取整
public static long Longint(Variant paramVariant) {
return paramVariant.getLong();
}
@SimpleFunction//到长整数
public static long longStr(String paramString) {
if (!"".equals(paramString)) {
return Long.parseLong(paramString);
}
return 0L;
}
@SimpleFunction//到整数
public static int Strint(String paramString) {
if (!"".equals(paramString)) {
return Integer.parseInt(paramString);
}
return 0;
}
@SimpleFunction//文本到数值
public static double Strdou(String paramString) {
if (!"".equals(paramString)) {
return Double.parseDouble(paramString);
}
return 0.0D;
}
@SimpleFunction//到文本
public static String DouStr(double paramDouble) {
return String.valueOf(paramDouble);
}
@SimpleFunction//整数到文本
public static String IntStr(int paramInt) {
return Integer.toString(paramInt);
}
/////////////////////////////////////////////////
@SimpleFunction//计算朔望时的角度公式。
public static double ang(double x,double t,double c1,double t0,double t2,double t3) {
return tail(c1*x)*2*PI()+t0-t2*t*t-t3*t*t*t;
}
/////////////////////////////////////////////////
@SimpleFunction//返回当前日历类型,-1为未定义,0为儒略历,1为格利高历。
public static double ifGr(double y,double m,double d) {
if (y>1582 || (y == 1582 && m>10) || (y == 1582 && m == 10 && d>14)) {
return 1;
} else if (y == 1582 && m == 10 && d>=5 && d<=14) {
return -1;
} else {
return 0;
}
}
@SimpleFunction//等效标准天数(Equivalent Standard Days)(y年m月d日距该历制的1年1月0日的天数)
public static double ESD(double y,double m,double d) {
if (ifGr(y, m, d) == -1) {
return Infinity;
}
if (ifGr(y, m, d) == 1) {
return SD(y, m, d);
//格利高历的标准天数
} else {
return SD(y, m, d)-2;
//儒略历的标准天数
}
}
@SimpleFunction//儒略日
public static double JD(double Y,double M, double D) {
double N=0;
double G=0;
if (Y*372+M*31+floor(D)>=588829) {
G=1;
}
if (M<=2) {
M=M+12;
Y=Y-1;
}
if (G==1) {
N=floor(Y/100);
N=2-N+floor(N/4);// 加百年闰
}
return floor(365.25*(Y+4716))+floor(30.6001*(M+1))+D+N-1524;
}
@SimpleFunction//标准天数(Standard Days)(y年m月d日距该历制的1年1月0日的天数)。
public static double SD(double y,double m,double d) {
if (ifGr(y, m, d) == -1) {
return Infinity;
}
if (ifGr(y, m, d) == 1) {
return (y-1)*365+floor((y-1)/4)-floor((y-1)/100)+floor((y-1)/400)+D0(y, m, d);
//格利高历的标准天数
} else {
return (y-1)*365+floor((y-1)/4)+D0(y, m, d);
//儒略历的标准天数
}
}
@SimpleFunction//返回本年元旦到本历法1年元旦的天数差。
public static double D(double y) {
double v = (y-1)*365+floor((y-1)/4);
//儒略历
if (ifGr(y, 12, 1) == 1) {
v += -floor((y-1)/100)+floor((y-1)/400);
}
//格利高历
return v;
}
@SimpleFunction//返回当前天距本年元旦的天数。
public static double D0(double y,double m,double d) {
double ifG = ifGr(y, m, d);
double[] monL = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
double v = 0;
if (ifG == -1) {
return -1;//return Infinity;
}
if (ifG == 1) {
if ((y%100 != 0 && y%4 == 0) || (y%400 == 0)) {
monL[2] += 1;
}
} else {
if (y%4 == 0) {
monL[2] += 1;
}
}
for (int i = 0; i<=m-1; i++) {
v += monL[i];
}
v += d;
return v;
}
@SimpleFunction//将单位天的纯小数转换成如同5:08的时间格式DouStr
public static String dToStr(double dv) {
String hh="",mn="",ss="";
double v = floor(dv*86400);
double h = floor(dv*24);
double min = floor((dv*24-h)*60);
double sec = floor((dv*1440-h*60-min)*60);
if (h<10) {
hh = "0"+IntStr(Doin(h));
} else {
hh = IntStr(Doin(h));
}
if (min<10) {
mn = "0"+IntStr(Doin(min));
} else {
mn = IntStr(Doin(min));
}
if (sec<10) {
ss = "0"+IntStr(Doin(sec));
} else {
ss = IntStr(Doin(sec));
}
return hh+":"+mn+":"+ss;
//return DouStr(floor(dv*86400));
}
/////////////////////////////////////////////////
@SimpleFunction//本月天数(公历)
public static double MonDay(double Y,double M) {
double V = floor(JD(Y,M,1));
M = M+1;
if (M>12) {
M=1;
Y=Y+1;
}
double V1 = floor(JD(Y,M,1)) - V;
return V1;
}
@SimpleFunction//本月总周数
public static double MonDayZtr(double Y,double M) {
double V1 = MonDayStr(Y,M);
double V2 = MonDay(Y,M);
//double V3 = floor((V1+V2)/7)+1;
double V3 = ((V1+V2)%7==0) ? floor((V1+V2)/7) : floor((V1+V2)/7)+1;
return V3;
}
@SimpleFunction//月首星期
public static double MonDayStr(double Y,double M) {
double v = JD(Y,M,1)+1;
return v % 7;
}
@SimpleFunction//星期几
public static double Day(double Y,double M,double D) {
//return nnr(ESD(y, m, d), 7);
double v = JD(Y,M,D)+1;
return v % 7;
}
@SimpleFunction//周序号----本日所在的
public static double MonDayint(double Y,double M,double D) {
double v = MonDayStr(Y,M)+D;
return floor(v / 7);
}
@SimpleFunction//y年m月的第n个星期day是几月几号
public static String nDayDate(int y,int m,int n,int day) {
double firstDay = Day(y, m, 1);
double d;
if (day>=firstDay) {
d = (n-1)*7+day-firstDay+1;
} else {
d = n*7+day-firstDay+1;
}
String ms = (m<10) ? "0"+DouStr(m) : ""+DouStr(m);
String ds = (d<10) ? "0"+DouStr(d) : DouStr(d);
return ms+ds;
}
@SimpleFunction//y年m月的倒数第n个星期day是几月几号
public static String rnDayDate(int y,int m,int n,int day) {
double lastDate;
if (y<12) {
lastDate = D0(y, m+1, 1)-D0(y, m, 1);
} else {
lastDate = 31;
}
double lastDay = Day(y, m, lastDate);
double d;
if (day<=lastDay) {
d = lastDate-lastDay-(n-1)*7+day;
} else {
d = lastDate-lastDay-n*7+day;
}
String ms = (m<10) ? "0"+DouStr(m) : ""+DouStr(m);
String ds = (d<10) ? "0"+DouStr(d) : DouStr(d);
return ms+ds;
}
@SimpleFunction
public static double sZod(double m,double d) {
double[] zodd = {1222, 121, 220, 321, 421, 522, 622, 723, 823, 924, 1024, 1123, 1222};
int i = 0;
if ((100*m+d)>=zodd[0] || (100*m+d)<zodd[1]) {
i = 0;
} else {
for ( i = 1; i<12; i++) {
if ((100*m+d)>=zodd[i] && (100*m+d)<zodd[i+1]) {
break;
}
}
}
return i;
}
@SimpleFunction//返回y年第n个节气(如小寒为1)的D0(日差天数)值(pd取值为0或1,分别表示平气和定气)
public static double S(double y,double n,double pd) {
double juD = y*(365.2423112-(6.4e-14)*(y-100)*(y-100)-(3.047e-8)*(y-100))+15.218427*n+1721050.71301;
//儒略日
double tht = (3e-4)*y-0.372781384-0.2617913325*n;
//角度
double yrD = (1.945*sin(tht)-0.01206*sin(2*tht))*(1.048994-(2.583e-5)*y);
//年差实均数
double shuoD = (-18e-4)*sin(2.313908653*y-0.439822951-3.0443*n);
//朔差实均数
//double vs = (pd == 1) ? (juD+yrD+shuoD-ESD(y, 1, 0)-1721425) : (juD-ESD(y, 1, 0)-1721425);
double vs = juD+yrD+shuoD-ESD(y, 1, 0)-1721425;
return vs;
}
/////////////////////////////////////////////////
@SimpleFunction//年干支
public static double yGz(double y,double m,double d,double h) {
if ((D0(y, m, d)+h/24)<S(y, 3, 1)) {
//判断是否过立春
y -= 1;
}
return round(rem(y-3, 60));
}
@SimpleFunction//月干支
public static double mGz(double y,double m,double d,double h) {
double n = S(y, m*2-1, 1);
double nd = D0(y, m, d)+h/24;
double nm = nd<n ? m-1 : m;
double ny = y;
if (nm>11) {
ny = y+1;
nm = 0;
}
double ns = ((ny%5)*12+nm+2)%10;
return ns*100+nm;
}
@SimpleFunction//日干支
public static double dGz(double y,double m,double d,double h) {
double gzD = (h<23) ? ESD(y, m, d) : ESD(y, m, d)+1;
return round(rem(gzD+15-1, 60)+1);
}
@SimpleFunction//时干支
public static double hGz(double y,double m,double d,double h) {
double v = 12*(dGz(y, m, d, h)%10)+floor((h+1)/2)-11;
if (h == 23) {
v -= 12;
}
return round(rem(v-1, 60)+1);
}
@SimpleFunction//返回年干支
public static String yGzStr(double y,double m,double d,double h) {
double v = yGz(y, m, d, h);
return ganzhi(v);
}
@SimpleFunction//返回月干支
public static String mGzStr(double y,double m,double d,double h) {
double s = mGz(y, m, d, h);
double t = floor(s/100);
double v = s-t*100;///////////////////////////////////////////////////////////////////////////////////
int v1 = Doin(t);
int v2 = Doin(v);
String str0 = "甲乙丙丁戊己庚辛壬癸";
String str1 = "子丑寅卯辰巳午未申酉戌亥";
return charAt(str0,v1,1)+charAt(str1,v2,1);
}
@SimpleFunction//返回日干支
public static String dGzStr(double y,double m,double d,double h) {
return ganzhi(dGz(y, m, d, h));
}
@SimpleFunction//返回时干支
public static String hGzStr(double y,double m,double d,double h) {
return ganzhi(hGz(y, m, d, h));
}
@SimpleFunction//返回农历纪年年干支
public static String yGzStrJn(double n) {
return ganzhi(n-1);
}
@SimpleFunction//返回干支
private static String ganzhi(double v) {
String str0 = "癸甲乙丙丁戊己庚辛壬";
String str1 = "亥子丑寅卯辰巳午未申酉戌";
int v1 = Doin(v%10);
int v2 = Doin(v%12);
return charAt(str0,v1,1)+charAt(str1,v2,1);
}
@SimpleFunction//返回生肖
public static String sxStr(double n) {
String str = "猪鼠牛虎兔龙蛇马羊猴鸡狗";
int v1 = Doin((n-1)%12);
return charAt(str,v1,1);
}
@SimpleFunction//返回星座字符串。
public static String szodStr(double m,double d) {
String str = "摩羯水瓶双鱼牧羊金牛双子巨蟹狮子处女天秤天蝎射手";
double v = sZod(m, d);
return charAt(str,Doin(2*v), 2);
}
@SimpleFunction//返回星期字符串
public static String dayStr(double y,double m,double d) {
String str = "日一二三四五六";
double v = Day(y, m, d);
return charAt(str,Doin(v),1);
}
@SimpleFunction//返回星期字符串
public static String dayStr2(int v) {
String str = "日一二三四五六";
return charAt(str,v,1);
}
/////////////////////////////////////////////////
//@SimpleFunction//公元年份
//public static String yearStr(double v) { //
// if (v<=0) {
// return "前"+(-v+1);
// } else {
// return String(v);
// }
//}
@SimpleFunction//公元月份
public static String monthStr(int v) {
String[] str = {"", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二"};
return str[v];
}
@SimpleFunction//返回农历月数字符串。
public static String lunMonthStr(double m) {
double v0 = abs(m);
String str = "正二三四五六七八九十冬腊";
int v1 = Doin((v0-1)%12);
String vstr = charAt(str,v1,1);
if (m<0) {
vstr = "闰"+vstr;
}
return vstr;
}
@SimpleFunction//返回农历日期字符串。
public static String lunDateStr(double d) {
String str = "十一二三四五六七八九初十廿三";
int v1 = Doin(floor(d/10)+10);
int v2 = Doin(d%10);
String vstr = charAt(str,v1,1)+charAt(str,v2,1);
if (d == 10) {
vstr = "初十";
}
return vstr;
}
@SimpleFunction//返回节气字符串
public static String stermStr2(double y,double m,double d) {
String str = "";
double v0 = D0(y,m,d);
for (int i = 0; i<=24; i ++) {
double t=floor(S(y,i,1));//1.0
if (t == v0) {
str = stermStr(i);
}
}
return str;
}
@SimpleFunction//返回节气字符串
public static String stermStr3(double y,double m,double d) {
String str = "";
double v0 = D0(y,m,d),r=0;
for (int i = 0; i<=24; i ++) {
double t=S(y,i,1);//1.0
if (floor(t) == v0) {
r=t-v0;
}
}
str = dToStr(r);
if (stermStr2(y,m,d) == "") {
str = "";
}
return str;
}
/////////////////////////////////////////////////
@SimpleFunction//返回节气字符串
public static String stermStr(double v) {
String str = "小寒大寒立春雨水惊蛰春分清明谷雨立夏小满芒种夏至小暑大暑立秋处暑白露秋分寒露霜降立冬小雪大雪冬至";
return charAt(str,Doin(2*v-2), 2);
}
@SimpleFunction//公历节日sFtvl
public static String sFtvl(double y,double m,double d) {
String[] sFtv = {"0101元旦", "0210气象节", "0214情人节", "0308妇女节", "0312植树节", "0315权益日", "0323气象日", "0401愚人节","0501劳动节","0504青年节","0512护士节", "0517电信日","0601儿童节", "0605环境日", "0701建党日","0801建军节", "0910教师节", "0927旅游日", "1001国庆节", "1016粮食日", "1207民航日", "1210人权日", "1224平安夜", "1225圣诞节"};
double zx,xq,sx;
String str;
int w=sFtv.length-1;
str = "";
for (int i = 0; i<=w; i ++) {
String r=charAt(sFtv[i],0,4);
double x=Strdou(r);
if (x == 100*m+d) {
str = charAt(sFtv[i],4,3);
}
}
zx=MonDayint(y,m,d);//周序号=取周序号(Y,M,D)
xq=Day(y,m,d);//星期几=取星期号(Y,M,D)
sx=MonDayStr(y,m);//首星期=取首星期(Y,M)
if (xq >= sx) {
zx=zx+1;
}
if (m == 5 && zx == 2 && xq == 0) {
str = "母亲节";
}
if (m == 6 && zx == 3 && xq == 0) {
str = "父亲节";
}
return str;
}
@SimpleFunction//农历节日
public static String lFtvl(double m,double d,String DD) {
String[] lunFtv = {"0101春节", "0115元宵节", "0202春龙节", "0215老子诞", "0219观音诞", "0303北帝诞", "0323玛祖诞", "0408牛王诞", "0411孔子祭", "0505端午节", "0606姑姑节", "0707七夕节", "0715中元节", "0815中秋节", "0909重阳节", "1001祭祖节", "1015下元节", "1208腊八节", "1223北方小年", "1224南方小年"};
String str,r;
double x;
int w=lunFtv.length-1;
str = "";
for (int i = 0; i<=w; i ++) {
r=charAt(lunFtv[i],0,4);
x=Strdou(r);
if (x == 100*m+d) {
str = charAt(lunFtv[i],4,3);
}
}
if (m == 12 && d == 23 ) {
str = charAt(lunFtv[w-1],4,4);
}
if (m == 12 && d == 24 ) {
str = charAt(lunFtv[w],4,4);
}
if (m == 12) {
if (d == 29 && DD == "小") {
return "除夕";
}
if (d == 30 && DD == "大") {
return "除夕";
}
}
return str;
}
@SimpleFunction//民俗节日
public static String mFtvl(double y,double m,double d) {
double w,v;
String str = "";
double thisD0 = D0(y, m, d);
//春社秋社
double dG = dGz(y, m, d, 0)%10;
double s01 = floor(S(y, 3, 1));
if (thisD0>=s01+40 && thisD0<s01+50 && dG == 5) {
str += "春社 ";
}
double s15 = floor(S(y, 15, 1));
if (thisD0>=s15+40 && thisD0<s15+50 && dG == 5) {
str += "秋社 ";
}
//梅雨
dG = dGz(y, m, d, 0)%10;
double dZ = dGz(y, m, d, 0)%12;
double s11 = floor(S(y, 11, 1));
if (thisD0>=s11 && thisD0<s11+10 && dG == 3) {
str += "入梅 ";
}
double s13 = floor(S(y, 13, 1));
if (thisD0>=s13 && thisD0<s13+12 && dZ == 8) {
str += "出梅 ";
}
//三伏
double s12 = floor(S(y, 12, 1));
double n = (dG-7)%10+1;
if (n<=0) {
n += 10;
}
double firsrD0 = thisD0-n+1;
if (firsrD0>=s12+20 && firsrD0<s12+30) {
str += "初伏第"+n+"天 ";
}
if (firsrD0>=s15 && firsrD0<s15+10) {
str += "末伏第"+n+"天 ";
} else {
if (firsrD0>=s12+30 && firsrD0<s12+40) {
str += "中伏第"+n+"天 ";
}
if (firsrD0>=s12+40 && firsrD0<s12+50) {
str += "中伏第"+(n+10)+"天 ";
}
}
//夏九九
double n0 = thisD0-s12;
if (n0<81 && n0>=0) {
double sw = floor(n0/9);
double gw = n0%9;
String word = "一二三四五六七八九";
int v1 = Doin(sw);
int v2 = Doin(gw);
str += "夏"+charAt(word,v1,1)+"九第"+charAt(word,v2,1)+"天 ";
}
//冬九九
double s24 = floor(S(y, 24, 1));
double s_24 = floor(S(y-1, 24, 1));
double d1 = thisD0-s24;
double d2 = thisD0-s_24+D0(y-1, 12, 31)-D0(y-1, 1, 0);
if (d1>=0 || d2<=80) {
if (m == 12) {
w = 1;
v = d1+1;
if (v>9) {
w += 1;
v -= 9;
}
} else {
w = floor(d2/9)+1;
v = round(rem(d2, 9))+1;
}
String words = "九一二三四五六七八七八";
int v3 = Doin(w%9);
int v4 = Doin(v%9);
str += "冬"+charAt(words,v3,1)+"九第"+charAt(words,v4,1)+"天 ";
}
return str;
}
@SimpleFunction//民俗节日2
public static String mFtvl2(double y,double m,double d) {
double w,v;
String str = "";
double thisD0 = D0(y, m, d);
//春社秋社
double dG = dGz(y, m, d, 0)%10;
double s01 = floor(S(y, 3, 1));
if (thisD0>=s01+40 && thisD0<s01+50 && dG == 5) {
str = "春社";
}
double s15 = floor(S(y, 15, 1));
if (thisD0>=s15+40 && thisD0<s15+50 && dG == 5) {
str = "秋社";
}
//梅雨
dG = dGz(y, m, d, 0)%10;
double dZ = dGz(y, m, d, 0)%12;
double s11 = floor(S(y, 11, 1));
if (thisD0>=s11 && thisD0<s11+10 && dG == 3) {
str = "入梅";
}
double s13 = floor(S(y, 13, 1));
if (thisD0>=s13 && thisD0<s13+12 && dZ == 8) {
str = "出梅";
}
//三伏
double s12 = floor(S(y, 12, 1));
double n = (dG-7)%10+1;
if (n<=0) {
n += 10;
}
double firsrD0 = thisD0-n+1;
if (firsrD0>=s12+20 && firsrD0<s12+30 && n == 1) {
str += "初伏";
}
if (firsrD0>=s15 && firsrD0<s15+10 && n == 1) {
str += "末伏";
} else {
if (firsrD0>=s12+30 && firsrD0<s12+40 && n == 1) {
str += "中伏";
}
}
//夏九九
double n0 = thisD0-s12;
if (n0<81 && n0>=0) {
double sw = floor(n0/9);
double gw = n0%9;
String word = "一二三四五六七八九";
int v1 = Doin(sw);
int v2 = Doin(gw);
if (v2 == 1) {
str += "夏"+charAt(word,v1,1)+"九";
}
}
//冬九九
double s24 = floor(S(y, 24, 1));
double s_24 = floor(S(y-1, 24, 1));
double d1 = thisD0-s24;
double d2 = thisD0-s_24+D0(y-1, 12, 31)-D0(y-1, 1, 0);
if (d1>=0 || d2<=80) {
if (m == 12) {
w = 1;
v = d1+1;
if (v>9) {
w += 1;
v -= 9;
}
} else {
w = floor(d2/9)+1;
v = round(rem(d2, 9))+1;
}
String words = "九一二三四五六七八七八";
int v3 = Doin(w%9);
int v4 = Doin(v%9);
if (v4 == 1) {
str += "冬"+charAt(words,v3,1)+"九";
}
}
return str;
}
/////////////////////////////////////////////////
@SimpleFunction//返回-849到现在有多少个农历闰年。leapMleapdouble
public static double leapNum(int y) {
double v = 0;
if (y<0) {
return leapdouble[y+849];
} else {
return leapdouble[y-1+849];
}
}
@SimpleFunction//导出函数标记//返回农历的闰月月份,如果没有就返回0。
public static double leapMon(int y) {
String v = charAt(leapM,y+849,1);
double n = Strdou(v);
if (v == "a") {
n = 10;
}
if (v == "b") {
n = 11;
}
if (v == "c") {
n = 12;
}
return n;
}
@SimpleFunction//农历大小月判断
public static String lunMonDX(double y,int m,double d) {
if ((y == 1582 && m == 10 && d<=4) || (y == 1582 && m == 9 && d>=17)) {
return "小";
}
d = d+30-date;
double[] monL = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if (y>1582) {
if ((y%4 == 0 && y%100 != 0) || y%400 == 0) {
monL[2]++;
}
} else {
if (y%4 == 0) {
monL[2]++;
}
}
if (d>monL[m]) {
d = d-monL[m];
m++;
}
if (m>12) {
m = 1;
y++;
}
double t = (y-1899.5)/100;
double ms = floor((y-1900)*12.3685);
double rpi = 180/PI();
double zone = 8;
//时区
double f0 = ang(ms, t, 0, 0.75933, 2.172e-4, 1.55e-7)+0.53058868*ms-8.37e-4*t+zone/24+0.5;
double fc = 0.1734-3.93e-4*t;
double j0 = 693595+29*ms;
double aa0 = ang(ms, t, 0.08084821133, 359.2242/rpi, 0.0000333/rpi, 0.00000347/rpi);
double ab0 = ang(ms, t, 7.171366127999999e-2, 306.0253/rpi, -0.0107306/rpi, -0.00001236/rpi);
double ac0 = ang(ms, t, 0.08519585128, 21.2964/rpi, 0.0016528/rpi, 0.00000239/rpi);
double leap = 0;
//闰月数,0则不闰
double ecli = 0;
//日月食
double lunD = -1;
//农历日数
double shuoD = 0;
//本阴历月的阴历朔日数
for (int k = 1; k<=13; k ++) {
//k=整数为朔,k=半整数为望
double aa = aa0+0.507984293*k;
double ab = ab0+6.73377553*k;
double ac = ac0+6.818486628*k;
double f1 = f0+1.53058868*k+fc*sin(aa)-0.4068*sin(ab)+0.0021*sin(2*aa)+0.0161*sin(2*ab)+0.0104*sin(2*ac)-0.0074*sin(aa-ab)-0.0051*sin(aa+ab);
double j = j0+28*k+f1;
//朔或望的等效标准天数及时刻
//记录当前日期的j值
double lunD0 = ESD(y, m, d)-floor(j);
//当前日距朔日的差值
if (k == floor(k) && lunD0>=0 && lunD0<=29) {
lunD = lunD0+1;
}
}
//下面是对现行农历的校正(1901-2050)
//1924.3.5-4.3 少一天
if (y == 1924 && ((m == 3 && d>=5) || (m == 4 && d<=3))) {
lunD++;
if (lunD>30) {
lunD -= 30;
}
}
//2018.11.7-12.6 多一天
if (y == 2018 && ((m == 11 && d>=7) || (m == 12 && d<=6))) {
lunD--;
if (lunD<1) {
lunD += 30;
}
}
//2025.4.27-5.26 少一天
if (y == 2025 && ((m == 4 && d>=28) || (m == 5 && d<=26))) {
lunD++;
if (lunD>30) {
lunD -= 30;
}
}
if (lunD == 1) {
return "小";
} else {
return "大";
}
}
@SimpleFunction//返回农历日数及日月食信息的函数,如-324.57923415,负号表示闰月,百位3表示月偏食(2为月全食,1为日食0为无食),百位及十位表示日数,小数部分是朔望时刻(单位为天,若该天不朔或望则小数部分为零)
public static double lunDate(int y,int m,int d) {
double t,ms,rpi,zone,f0,fc,j0,aa0,ab0,ac0,leap,ecli,lunD,shuoD,shuoT,wangT,k,aa,ab,ac,f1,j,lunD0,k1,wangD,s,r,p,q;
t = (y-1899.5)/100;
ms = floor((y-1900)*12.3685);
rpi = 180/PI();
zone = 8;
//时区
f0 = ang(ms, t, 0, 0.75933, 2.172e-4, 1.55e-7)+0.53058868*ms-8.37e-4*t+zone/24+0.5;
fc = 0.1734-3.93e-4*t;
j0 = 693595+29*ms;
aa0 = ang(ms, t, 0.08084821133, 359.2242/rpi, 0.0000333/rpi, 0.00000347/rpi);
ab0 = ang(ms, t, 7.171366127999999e-2, 306.0253/rpi, -0.0107306/rpi, -0.00001236/rpi);
ac0 = ang(ms, t, 0.08519585128, 21.2964/rpi, 0.0016528/rpi, 0.00000239/rpi);
leap = 0;
//闰月数,0则不闰
ecli = 0;
//日月食
lunD = -1;
//农历日数
shuoD = 0;
//本阴历月的阴历朔日数
shuoT = 0;
//本阴历月的朔时刻
wangD = 0;
//本阴历月的阴历望日数
wangT = 0;
//本阴历月的望时刻
k1 = -1; //
for (k = -1; k<=13; k += 0.5) {//for (var k = -1; k<=13; k += 0.5) {//for (k <= 13) {
//k=整数为朔,k=半整数为望
aa = aa0+0.507984293*k;
ab = ab0+6.73377553*k;
ac = ac0+6.818486628*k;
f1 = f0+1.53058868*k+fc*sin(aa)-0.4068*sin(ab)+0.0021*sin(2*aa)+0.0161*sin(2*ab)+0.0104*sin(2*ac)-0.0074*sin(aa-ab)-0.0051*sin(aa+ab);
j = j0+28*k+f1;
//朔或望的等效标准天数及时刻
//记录当前日期的j值
lunD0 = ESD(y, m, d)-floor(j);
//当前日距朔日的差值
if (k == floor(k) && lunD0>=0 && lunD0<=29) {
k1 = k;
//记录当前时间对应的k值
shuoT = tail(j);
lunD = lunD0+1;
}
if (k == (k1+0.5)) {
wangT = tail(j);
wangD = floor(j)-(ESD(y, m, d)-lunD+1)+1;
}
//判断日月食
if ((lunD == 1 && k == k1) || (lunD == wangD && k == (k1+0.5))) {
if (abs(sin(ac))<=0.36) {
s = 5.19595-0.0048*cos(aa)+0.002*cos(2*aa)-0.3283*cos(ab)-0.006*cos(aa+ab)+0.0041*cos(aa-ab);
r = 0.207*sin(aa)+0.0024*sin(2*aa)-0.039*sin(ab)+0.0115*sin(2*ab)-0.0073*sin(aa+ab)-0.0067*sin(aa-ab)+0.0117*sin(2*ac);
p = abs(s*sin(ac)+r*cos(ac));
q = 0.0059+0.0046*cos(aa)-0.0182*cos(ab)+0.0004*cos(2*ab)-0.0005*cos(aa+ab);
if (p-q<=1.5572) {
ecli = 1; //日食
if (k != floor(k)) {
if (p+q>=1.0129) {
ecli = 3; //月偏食
} else {
ecli = 2; //月全食
}
}
}
}
}
k = k + 0.5;
}
//下面是对现行农历的校正(1901-2050)
//1924.3.5-4.3 少一天
if (y == 1924 && ((m == 3 && d>=5) || (m == 4 && d<=3))) {
lunD++;
if (lunD>30) {
lunD -= 30;
}
}
//2018.11.7-12.6 多一天
if (y == 2018 && ((m == 11 && d>=7) || (m == 12 && d<=6))) {
lunD--;
if (lunD<1) {
lunD += 30;
}
}
//2025.4.27-5.26 少一天
if (y == 2025 && ((m == 4 && d>=28) || (m == 5 && d<=26))) {
lunD++;
if (lunD>30) {
lunD -= 30;
}
}
////////////////////////////////////////////////////
date = lunD;
//阴历日期
if (lunD == 1) {
syzygyType = "朔";
//朔
syzygyTime = shuoT;
//朔的时刻
} else if (lunD == wangD) {
syzygyType = "望";
//望
syzygyTime = wangT;
//望的时刻
} else {
syzygyType = null;
syzygyTime = -1;
}
ecliType = ecli;
//日月食类型
ecliTime = syzygyTime;
return date;
}
@SimpleFunction//返回农历月份。
public static double lunMon(int y,int m,int d) {
double lunDt,lunD,MonN,lunM;
double leapN;
//if (y>=2100) {
// return getNewMonth(y, m, d);
//}
lunDt = lunDate (y, m, d);//date;
lunD = floor(lunDt-floor(lunDt/100)*100);//农历日数
leapN = 0 ; //从当年到-849年的总闰月数
leapN = leapNum(y);
//从当年到-849年的总闰月数
MonN = round((ESD(y, m, d)-ESD(-849, 1, 21)-lunD)/29.530588)-leapN;
//从当年到-849年的有效总月数(扣除闰月)
if (y<=240) {
MonN++;
}
if (y<=237) {
MonN--;
}
if (y<24) {
MonN++;
}
if (y<9) {
MonN--;
}
if (y<=-255) {
MonN++;
}
if (y<=-256) {
MonN += 2;
}
if (y<=-722) {
MonN++;
}
//历史上的修改月建
lunM = round(rem(MonN-3, 12)+1);
if (lunM == leapMon(y-1) && m == 1 && d<lunD) {
lunM *= -1;
//如果y-1年末是闰月且该月接到了y年,则y年年初也是闰月
} else {
if (lunM == leapMon(y)) {
if (m == 1 && leapMon(y) != 12) {
lunM++;
//比如1984年有闰10月,而1984-1-1的lunM=10,但这是从1983年阴历接过来的,所以不是1984年的闰10月
} else {
lunM *= -1;
}
//alert();
} else {
if (lunM<leapMon(y) || m<lunM && leapMon(y)!=0) {
lunM++;
lunM = round(rem(lunM-1, 12)+1);
}
//如果y年是闰月但当月未过闰月则前面多扣除了本年的闰月,这里应当补偿
//lunM = round(rem(lunM-1, 12)+1);
}
}
//alert(lunM);
//下面是对现行农历的校正(1901-2050),由波波网友指出
//1924.3.5-4.3 少一天
if (y == 1924 && ((m == 3 && d == 5))) {
lunM++;
}
//2018.11.7-12.6 多一天
if (y == 2018 && ((m == 11 && d == 7))) {
lunM--;
}
//2025.4.27-5.26 少一天
if (y == 2025 && ((m == 4 && d == 27))) {
lunM++;
}
return lunM;
}
@SimpleFunction
public static double revD0(int y,int n) {
double m,mL;
m = 10;
for (int j = 1; j<=12; j++) {
mL = D0(y, j+1, 1)-D0(y, j, 1);
if (n<=mL || j == 12) {
m = j;
break;
} else {
n -= mL;
}
}
//如果真 (calType = 1 且 y = 1582 且 m = 10 且 x ≥ 5 且 x ≤ 14)
//if ((ifGr() == 1) && (y == 1582 && m == 10 && n>=5 && n<=14)) {
if ( (y == 1582 && m == 10 && n>=5 && n<=14)) {
return Infinity;
}
return 100*m+n;
}
@SimpleFunction//返回农历的黄帝纪年Doin
public static double gethdyear(int y,int m,int d,int h) {
double x=S(y, 4, 1);
int v=Doin(x);
double n = revD0(y, v);
double nd = floor(n-2);
if (m>2 || (m == 2 && d>nd)) {
return y+2698;
}
double pm = lunMon(y, m, d);
if (Math.abs(pm)>7) {
return y+2697;
} else {
return y+2698;
}
}
/////////////////////////////////////////////////
@SimpleFunction//返回朔望类型。
public static String swTypeStr() {
if (syzygyType == null) {
return "";
}
return syzygyType;
}
@SimpleFunction//返回朔望时刻
public static String swTimeStr() {
if (syzygyTime<=0) {
return "";
}
return dToStr(syzygyTime);
}
@SimpleFunction//返回日月食类型
public static String ecliTypeStr() {
String str = "";
if (ecliType == 1) {
str = "日食";
}
if (ecliType == 2) {
str = "月全食";
}
if (ecliType == 3) {
str = "月偏食";
}
return str;
}
@SimpleFunction//返回日月食时间
public static String ecliTimeStr() {
if (ecliTime<=0 || ecliTypeStr() == "") {
return "";
}
return dToStr(ecliTime);
}
@SimpleFunction//y年m月的第n个星期day是几月几号
public static String nDayDate(double y,double m,double n,double day) {
double firstDay = Day(y, m, 1);
double d;
if (day>=firstDay) {
d = (n-1)*7+day-firstDay+1;
} else {
d = n*7+day-firstDay+1;
}
String ms = (m<10) ? "0"+DouStr(m) : ""+DouStr(m);
String ds = (d<10) ? "0"+DouStr(d) : DouStr(d);
return ms+ds;
}
//////////////////////////////////////////DouStrIntStr//////////
@SimpleFunction//日历图片notif_small_icon_1
public static String lunpg(int V) {
String str1 = "notif_small_icon_";
String str2 = IntStr(V);
String str3 = str1 + str2 + ".png";
return str3;
}
}
|