生活随笔
收集整理的這篇文章主要介紹了
根据所选日期、当前日期计算一周的日期和星期,农历
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
效果:
概述:
總共是兩個js文件
date.js----獲取周一到周日的日期和星期
nongli.js----日期轉換農歷
**
目前網上搜到的很多的轉農歷只支持到2020年,2020年以后的算出來不準,我這個是支持1900年-2100年區間內的公歷、農歷互轉, 所以可放心使用
**
獲取周一到周日的日期和星期:
js文件:
date.js
export const dateTime = (data) => {var weekList
= [];var date
= new Date(data
);if (date
.getDay() == "0") {date
.setDate(date
.getDate() - 6);} else {date
.setDate(date
.getDate() - date
.getDay() + 1);}var myDate
= date
.getDate();var myMonth
= date
.getMonth() + 1;if (date
.getDate() < 10) {myDate
= '0' + myDate
;}if (date
.getMonth() + 1 < 10) {myMonth
= '0' + myMonth
;}weekList
.push({dates: date
.getFullYear() + "-" + myMonth
+ "-" + myDate
,day: myDate
});for (var i
= 0; i
< 6; i
++) {date
.setDate(date
.getDate() + 1);myDate
= date
.getDate();myMonth
= date
.getMonth() + 1;if (date
.getDate() < 10) {myDate
= '0' + myDate
;}if (date
.getMonth() + 1 < 10) {myMonth
= '0' + myMonth
;}weekList
.push({dates: date
.getFullYear() + "-" + myMonth
+ "-" + myDate
,day: myDate
});}let arr
= [{week: '一',date: weekList
[0].day
,dates: weekList
[0].dates
},{week: '二',date: weekList
[1].day
,dates: weekList
[1].dates
},{week: '三',date: weekList
[2].day
,dates: weekList
[2].dates
},{week: '四',date: weekList
[3].day
,dates: weekList
[3].dates
},{week: '五',date: weekList
[4].day
,dates: weekList
[4].dates
},{week: '六',date: weekList
[5].day
,dates: weekList
[5].dates
},{week: '日',date: weekList
[6].day
,dates: weekList
[6].dates
}]console
.log(arr
, 'arr')return arr
}
頁面引用:
import { dateTime
} from '@/util/date/date.js'
日期轉換農歷:
文件nongli.js
var lunarInfo
= [0x04bd8, 0x04ae0, 0x0a570, 0x054d5, 0x0d260, 0x0d950, 0x16554, 0x056a0, 0x09ad0, 0x055d2, 0x04ae0, 0x0a5b6, 0x0a4d0, 0x0d250, 0x1d255, 0x0b540, 0x0d6a0, 0x0ada2, 0x095b0, 0x14977, 0x04970, 0x0a4b0, 0x0b4b5, 0x06a50, 0x06d40, 0x1ab54, 0x02b60, 0x09570, 0x052f2, 0x04970, 0x06566, 0x0d4a0, 0x0ea50, 0x06e95, 0x05ad0, 0x02b60, 0x186e3, 0x092e0, 0x1c8d7, 0x0c950, 0x0d4a0, 0x1d8a6, 0x0b550, 0x056a0, 0x1a5b4, 0x025d0, 0x092d0, 0x0d2b2, 0x0a950, 0x0b557, 0x06ca0, 0x0b550, 0x15355, 0x04da0, 0x0a5b0, 0x14573, 0x052b0, 0x0a9a8, 0x0e950, 0x06aa0, 0x0aea6, 0x0ab50, 0x04b60, 0x0aae4, 0x0a570, 0x05260, 0x0f263, 0x0d950, 0x05b57, 0x056a0, 0x096d0, 0x04dd5, 0x04ad0, 0x0a4d0, 0x0d4d4, 0x0d250, 0x0d558, 0x0b540, 0x0b6a0, 0x195a6, 0x095b0, 0x049b0, 0x0a974, 0x0a4b0, 0x0b27a, 0x06a50, 0x06d40, 0x0af46, 0x0ab60, 0x09570, 0x04af5, 0x04970, 0x064b0, 0x074a3, 0x0ea50, 0x06b58, 0x05ac0, 0x0ab60, 0x096d5, 0x092e0, 0x0c960, 0x0d954, 0x0d4a0, 0x0da50, 0x07552, 0x056a0, 0x0abb7, 0x025d0, 0x092d0, 0x0cab5, 0x0a950, 0x0b4a0, 0x0baa4, 0x0ad50, 0x055d9, 0x04ba0, 0x0a5b0, 0x15176, 0x052b0, 0x0a930, 0x07954, 0x06aa0, 0x0ad50, 0x05b52, 0x04b60, 0x0a6e6, 0x0a4e0, 0x0d260, 0x0ea65, 0x0d530, 0x05aa0, 0x076a3, 0x096d0, 0x04afb, 0x04ad0, 0x0a4d0, 0x1d0b6, 0x0d250, 0x0d520, 0x0dd45, 0x0b5a0, 0x056d0, 0x055b2, 0x049b0, 0x0a577, 0x0a4b0, 0x0aa50, 0x1b255, 0x06d20, 0x0ada0, 0x14b63, 0x09370, 0x049f8, 0x04970, 0x064b0, 0x168a6, 0x0ea50, 0x06b20, 0x1a6c4, 0x0aae0, 0x0a2e0, 0x0d2e3, 0x0c960, 0x0d557, 0x0d4a0, 0x0da50, 0x05d55, 0x056a0, 0x0a6d0, 0x055d4, 0x052d0, 0x0a9b8, 0x0a950, 0x0b4a0, 0x0b6a6, 0x0ad50, 0x055a0, 0x0aba4, 0x0a5b0, 0x052b0, 0x0b273, 0x06930, 0x07337, 0x06aa0, 0x0ad50, 0x14b55, 0x04b60, 0x0a570, 0x054e4, 0x0d160, 0x0e968, 0x0d520, 0x0daa0, 0x16aa6, 0x056d0, 0x04ae0, 0x0a9d4, 0x0a2d0, 0x0d150, 0x0f252, 0x0d520] var solarMonth
= [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]var Gan
= ['\u7532', '\u4e59', '\u4e19', '\u4e01', '\u620a', '\u5df1', '\u5e9a', '\u8f9b', '\u58ec', '\u7678']var Zhi
= ['\u5b50', '\u4e11', '\u5bc5', '\u536f', '\u8fb0', '\u5df3', '\u5348', '\u672a', '\u7533', '\u9149', '\u620c', '\u4ea5']var Animals
= ['\u9f20', '\u725b', '\u864e', '\u5154', '\u9f99', '\u86c7', '\u9a6c', '\u7f8a', '\u7334', '\u9e21', '\u72d7', '\u732a']var solarTerm
= ['\u5c0f\u5bd2', '\u5927\u5bd2', '\u7acb\u6625', '\u96e8\u6c34', '\u60ca\u86f0', '\u6625\u5206', '\u6e05\u660e', '\u8c37\u96e8', '\u7acb\u590f', '\u5c0f\u6ee1', '\u8292\u79cd', '\u590f\u81f3', '\u5c0f\u6691', '\u5927\u6691', '\u7acb\u79cb', '\u5904\u6691', '\u767d\u9732', '\u79cb\u5206', '\u5bd2\u9732', '\u971c\u964d', '\u7acb\u51ac', '\u5c0f\u96ea', '\u5927\u96ea', '\u51ac\u81f3']var sTermInfo
= ['9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf97c3598082c95f8c965cc920f','97bd0b06bdb0722c965ce1cfcc920f', 'b027097bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e','97bcf97c359801ec95f8c965cc920f', '97bd0b06bdb0722c965ce1cfcc920f', 'b027097bd097c36b0b6fc9274c91aa','97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', '97bd0b06bdb0722c965ce1cfcc920f','b027097bd097c36b0b6fc9274c91aa', '9778397bd19801ec9210c965cc920e', '97b6b97bd19801ec95f8c965cc920f','97bd09801d98082c95f8e1cfcc920f', '97bd097bd097c36b0b6fc9210c8dc2', '9778397bd197c36c9210c9274c91aa','97b6b97bd19801ec95f8c965cc920e', '97bd09801d98082c95f8e1cfcc920f', '97bd097bd097c36b0b6fc9210c8dc2','9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec95f8c965cc920e', '97bcf97c3598082c95f8e1cfcc920f','97bd097bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec9210c965cc920e','97bcf97c3598082c95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa','97b6b97bd19801ec9210c965cc920e', '97bcf97c3598082c95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722','9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f','97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e','97bcf97c359801ec95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa','97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', '97bd097bd07f595b0b6fc920fb0722','9778397bd097c36b0b6fc9210c8dc2', '9778397bd19801ec9210c9274c920e', '97b6b97bd19801ec95f8c965cc920f','97bd07f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c920e','97b6b97bd19801ec95f8c965cc920f', '97bd07f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2','9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bd07f1487f595b0b0bc920fb0722','7f0e397bd097c36b0b6fc9210c8dc2', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e','97bcf7f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa','97b6b97bd19801ec9210c965cc920e', '97bcf7f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722','9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf7f1487f531b0b0bb0b6fb0722','7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e','97bcf7f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa','97b6b97bd19801ec9210c9274c920e', '97bcf7f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722','9778397bd097c36b0b6fc9210c91aa', '97b6b97bd197c36c9210c9274c920e', '97bcf7f0e47f531b0b0bb0b6fb0722','7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c920e','97b6b7f0e47f531b0723b0b6fb0722', '7f0e37f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2','9778397bd097c36b0b70c9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', '7f0e37f1487f595b0b0bb0b6fb0722','7f0e397bd097c35b0b6fc9210c8dc2', '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721','7f0e27f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa','97b6b7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722','9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722','7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721','7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9274c91aa','97b6b7f0e47f531b0723b0787b0721', '7f0e27f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722','9778397bd097c36b0b6fc9210c91aa', '97b6b7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722','7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9210c8dc2', '977837f0e37f149b0723b0787b0721','7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f5307f595b0b0bc920fb0722', '7f0e397bd097c35b0b6fc9210c8dc2','977837f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e37f1487f595b0b0bb0b6fb0722','7f0e397bd097c35b0b6fc9210c8dc2', '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721','7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '977837f0e37f14998082b0787b06bd','7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722','977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722','7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721','7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14998082b0787b06bd','7f07e7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722','977837f0e37f14998082b0723b06bd', '7f07e7f0e37f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722','7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b0721','7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f1487f595b0b0bb0b6fb0722', '7f0e37f0e37f14898082b0723b02d5','7ec967f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f1487f531b0b0bb0b6fb0722','7f0e37f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721','7f0e37f1487f531b0b0bb0b6fb0722', '7f0e37f0e37f14898082b072297c35', '7ec967f0e37f14998082b0787b06bd','7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e37f0e37f14898082b072297c35','7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722','7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f149b0723b0787b0721','7f0e27f1487f531b0b0bb0b6fb0722', '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14998082b0723b06bd','7f07e7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', '7f0e37f0e366aa89801eb072297c35','7ec967f0e37f14998082b0723b06bd', '7f07e7f0e37f14998083b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722','7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14898082b0723b02d5', '7f07e7f0e37f14998082b0787b0721','7f07e7f0e47f531b0723b0b6fb0722', '7f0e36665b66aa89801e9808297c35', '665f67f0e37f14898082b0723b02d5','7ec967f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0722', '7f0e36665b66a449801e9808297c35','665f67f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721','7f0e36665b66a449801e9808297c35', '665f67f0e37f14898082b072297c35', '7ec967f0e37f14998082b0787b06bd','7f07e7f0e47f531b0723b0b6fb0721', '7f0e26665b66a449801e9808297c35', '665f67f0e37f1489801eb072297c35','7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722']var nStr1
= ['\u65e5', '\u4e00', '\u4e8c', '\u4e09', '\u56db', '\u4e94', '\u516d', '\u4e03', '\u516b', '\u4e5d', '\u5341']var nStr2
= ['\u521d', '\u5341', '\u5eff', '\u5345']var nStr3
= ['\u6b63', '\u4e8c', '\u4e09', '\u56db', '\u4e94', '\u516d', '\u4e03', '\u516b', '\u4e5d', '\u5341', '\u51ac', '\u814a']function lYearDays (y) {var i
var sum
= 348for (i
= 0x8000; i
> 0x8; i
>>= 1) { sum
+= (lunarInfo
[y
- 1900] & i
) ? 1 : 0 }return (sum
+ leapDays(y
))}function leapMonth (y) { return (lunarInfo
[y
- 1900] & 0xf)}function leapDays (y) {if (leapMonth(y
)) {return ((lunarInfo
[y
- 1900] & 0x10000) ? 30 : 29)}return (0)}function monthDays (y, m) {if (m
> 12 || m
< 1) { return -1 }return ((lunarInfo
[y
- 1900] & (0x10000 >> m
)) ? 30 : 29)}function solarDays (y, m) {if (m
> 12 || m
< 1) { return -1 } var ms
= m
- 1if (ms
=== 1) { return (((y
% 4 === 0) && (y
% 100 !== 0) || (y
% 400 === 0)) ? 29 : 28)} else {return (solarMonth
[ms
])}}function toGanZhiYear (lYear) {var ganKey
= (lYear
- 3) % 10var zhiKey
= (lYear
- 3) % 12if (ganKey
=== 0) ganKey
= 10 if (zhiKey
=== 0) zhiKey
= 12 return Gan
[ganKey
- 1] + Zhi
[zhiKey
- 1]}function toAstro (cMonth, cDay) {var s
= '\u9b54\u7faf\u6c34\u74f6\u53cc\u9c7c\u767d\u7f8a\u91d1\u725b\u53cc\u5b50\u5de8\u87f9\u72ee\u5b50\u5904\u5973\u5929\u79e4\u5929\u874e\u5c04\u624b\u9b54\u7faf'var arr
= [20, 19, 21, 21, 21, 22, 23, 23, 23, 23, 22, 22]return s
.substr(cMonth
* 2 - (cDay
< arr
[cMonth
- 1] ? 2 : 0), 2) + '\u5ea7' }function toGanZhi (offset) {return Gan
[offset
% 10] + Zhi
[offset
% 12]}function getTerm (y, n) {if (y
< 1900 || y
> 2100) { return -1 }if (n
< 1 || n
> 24) { return -1 }var _table
= sTermInfo
[y
- 1900]var _info
= [parseInt('0x' + _table
.substr(0, 5)).toString(),parseInt('0x' + _table
.substr(5, 5)).toString(),parseInt('0x' + _table
.substr(10, 5)).toString(),parseInt('0x' + _table
.substr(15, 5)).toString(),parseInt('0x' + _table
.substr(20, 5)).toString(),parseInt('0x' + _table
.substr(25, 5)).toString()]var _calday
= [_info
[0].substr(0, 1),_info
[0].substr(1, 2),_info
[0].substr(3, 1),_info
[0].substr(4, 2),_info
[1].substr(0, 1),_info
[1].substr(1, 2),_info
[1].substr(3, 1),_info
[1].substr(4, 2),_info
[2].substr(0, 1),_info
[2].substr(1, 2),_info
[2].substr(3, 1),_info
[2].substr(4, 2),_info
[3].substr(0, 1),_info
[3].substr(1, 2),_info
[3].substr(3, 1),_info
[3].substr(4, 2),_info
[4].substr(0, 1),_info
[4].substr(1, 2),_info
[4].substr(3, 1),_info
[4].substr(4, 2),_info
[5].substr(0, 1),_info
[5].substr(1, 2),_info
[5].substr(3, 1),_info
[5].substr(4, 2)]return parseInt(_calday
[n
- 1])}function toChinaMonth (m) { if (m
> 12 || m
< 1) { return -1 } var s
= nStr3
[m
- 1]s
+= '\u6708' return s
}function toChinaDay (d) { var s
switch (d
) {case 10:s
= '\u521d\u5341'breakcase 20:s
= '\u4e8c\u5341'breakcase 30:s
= '\u4e09\u5341'breakdefault :s
= nStr2
[Math
.floor(d
/ 10)]s
+= nStr1
[d
% 10]}return (s
)}function getAnimal (y) {return Animals
[(y
- 4) % 12]}function solar2lunar (y, m, d) { if (y
< 1900 || y
> 2100) {return -1 }if (y
=== 1900 && m
=== 1 && d
< 31) {return -1}var objDate
= nullif (!y
) {objDate
= new Date()} else {objDate
= new Date(y
, parseInt(m
) - 1, d
)}var i
var leap
= 0var temp
= 0y
= objDate
.getFullYear()m
= objDate
.getMonth() + 1d
= objDate
.getDate()var offset
= (Date
.UTC(objDate
.getFullYear(), objDate
.getMonth(), objDate
.getDate()) - Date
.UTC(1900, 0, 31)) / 86400000for (i
= 1900; i
< 2101 && offset
> 0; i
++) {temp
= lYearDays(i
)offset
-= temp
}if (offset
< 0) {offset
+= temp
; i
--}var isTodayObj
= new Date()var isToday
= falseif (isTodayObj
.getFullYear() === y
&& isTodayObj
.getMonth() + 1 === m
&& isTodayObj
.getDate() === d
) {isToday
= true}var nWeek
= objDate
.getDay()var cWeek
= nStr1
[nWeek
]if (nWeek
=== 0) {nWeek
= 7}var year
= ileap
= leapMonth(i
) var isLeap
= falsefor (i
= 1; i
< 13 && offset
> 0; i
++) {if (leap
> 0 && i
=== (leap
+ 1) && isLeap
=== false) {--iisLeap
= true; temp
= leapDays(year
) } else {temp
= monthDays(year
, i
)}if (isLeap
=== true && i
=== (leap
+ 1)) { isLeap
= false }offset
-= temp
}if (offset
=== 0 && leap
> 0 && i
=== leap
+ 1) {if (isLeap
) {isLeap
= false} else {isLeap
= true; --i
}}if (offset
< 0) {offset
+= temp
; --i
}var month
= i
var day
= offset
+ 1var sm
= m
- 1var gzY
= toGanZhiYear(year
)var firstNode
= getTerm(y
, (m
* 2 - 1)) var secondNode
= getTerm(y
, (m
* 2)) var gzM
= toGanZhi((y
- 1900) * 12 + m
+ 11)if (d
>= firstNode
) {gzM
= toGanZhi((y
- 1900) * 12 + m
+ 12)}var isTerm
= falsevar Term
= nullif (firstNode
=== d
) {isTerm
= trueTerm
= solarTerm
[m
* 2 - 2]}if (secondNode
=== d
) {isTerm
= trueTerm
= solarTerm
[m
* 2 - 1]}var dayCyclical
= Date
.UTC(y
, sm
, 1, 0, 0, 0, 0) / 86400000 + 25567 + 10var gzD
= toGanZhi(dayCyclical
+ d
- 1)var astro
= toAstro(m
, d
)return {'lYear': year
, 'lMonth': month
, 'lDay': day
, 'Animal': getAnimal(year
), 'IMonthCn': (isLeap
? '\u95f0' : '') + toChinaMonth(month
), 'IDayCn': toChinaDay(day
), 'cYear': y
, 'cMonth': m
, 'cDay': d
, 'gzYear': gzY
, 'gzMonth': gzM
, 'gzDay': gzD
, 'isToday': isToday
, 'isLeap': isLeap
, 'nWeek': nWeek
, 'ncWeek': '\u661f\u671f' + cWeek
, 'isTerm': isTerm
, 'Term': Term
, 'astro': astro
}}var calendarFormatter
= {solar2lunar:function(y, m, d){ return solar2lunar(y
, m
, d
)},lunar2solar: function (y, m, d, isLeapMonth) { isLeapMonth
= !!isLeapMonth
if (isLeapMonth
&& (leapMonth
!== m
)) { return -1 }if (y
=== 2100 && m
=== 12 && d
> 1 || y
=== 1900 && m
=== 1 && d
< 31) { return -1 } var day
= monthDays(y
, m
)var _day
= day
if (isLeapMonth
) {_day
= leapDays(y
, m
)}if (y
< 1900 || y
> 2100 || d
> _day
) { return -1 }var offset
= 0for (var i
= 1900; i
< y
; i
++) {offset
+= lYearDays(i
)}var leap
= 0var isAdd
= falsefor (i
= 1; i
< m
; i
++) {leap
= leapMonth(y
)if (!isAdd
) { if (leap
<= i
&& leap
> 0) {offset
+= leapDays(y
); isAdd
= true}}offset
+= monthDays(y
, i
)}if (isLeapMonth
) { offset
+= day
}var stmap
= Date
.UTC(1900, 1, 30, 0, 0, 0)var calObj
= new Date((offset
+ d
- 31) * 86400000 + stmap
)var cY
= calObj
.getUTCFullYear()var cM
= calObj
.getUTCMonth() + 1var cD
= calObj
.getUTCDate()return solar2lunar(cY
, cM
, cD
)}}export default calendarFormatter
頁面引用:
import calendarFormatter
from '@/util/date/nongli.js'
使用:
initDate(type) { let nowDay
= ''if (type
) {nowDay
= new Date(type
)} else {nowDay
= new Date()}let initTime
= dateTime(nowDay
)initTime
.forEach((item, index) => { item
.lunar
= calendarFormatter
.solar2lunar(new Date(item
.dates
).getFullYear(), new Date(item
.dates
).getMonth() + 1, new Date(item
.dates
).getDate())if (type
) {if ((new Date(type
).getFullYear() + '-' + new Date(type
).getMonth() + '-' + new Date(type
).getDate()) == (new Date(item
.dates
).getFullYear() + '-' + new Date(item
.dates
).getMonth() + '-' + new Date(item
.dates
).getDate())) {this.flagIndex
= index
this.selectDate
= item
.dates
}if ((new Date().getFullYear() + '-' + new Date().getMonth() + '-' + new Date().getDate()) == (new Date(item
.dates
).getFullYear() + '-' + new Date(item
.dates
).getMonth() + '-' + new Date(item
.dates
).getDate())) {item
.date
= '今'}} else {if ((new Date().getFullYear() + '-' + new Date().getMonth() + '-' + new Date().getDate()) == (new Date(item
.dates
).getFullYear() + '-' + new Date(item
.dates
).getMonth() + '-' + new Date(item
.dates
).getDate())) {this.flagIndex
= index
this.selectDate
= item
.datesitem
.date
= '今'}}})this.dataList
= initTime
}
打印結果this.dataList:
其中農歷對象lunar包含的內容:
總結
以上是生活随笔為你收集整理的根据所选日期、当前日期计算一周的日期和星期,农历的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。