매우 유용한 js 달력 알고리즘 자세한 code_javascript 기술
May 16, 2016 pm 05:40 PM
js
코드 복사 코드는 다음과 같습니다.
<script type="text/javascript"> 0x04970, 0x0a4b0, 0x0b4b5, 0x06a50, 0x06d40, 0x1ab54, 0x02b60, 0x09570, 0x052f2, 0x04970
0x0 6566, 0x0d4a0, 0x0ea50, 0x06e95, 0x05ad0, 0x02b60, 0x186e3, 0x092e0, 0x1c8d7, 0x0c950 ,
0x0d4a0, 0x1d8a6, 0x0b550, 0x056a0, 0x1a5b4, 0x025d0, 0x092d0, 0x0d2b2, 0x0a950, 0x0b557,
0x06ca0, 0x0b550, 5355, 0x04da0, 0x0a5d0, 0x14573, 0x052d0, 0x0a9a8, 0x0e950, 0x06aa0,
0x0aea6, 0x0ab50, 0x04b60, 0x0aae4, 0x0a570, 0x05260, 0x0f263, 0x0d950, 0x05b57, 0x056a0,
0x096d0, 0x04dd5, 0x04ad0, d0, 0x0d4d4, 0x0d250, 0x0d558, 0x0b540, 0x0b5a0, 0x195a6,
0x095b0, 0x049b0, 0x0a974, 0x0a4b0, 0x0b27a, 0x06a50, 0x06d40, 0x0af46, 0x0ab60, 0x09570,
0x04af5, 0x04970, 0x064b0, 0x074a3, 0x0ea50, b58, 0x055c0, 0x0ab60, 0x096d5, 0x092e0,
0x0c960, 0x0d954, 0x0d4a0, 0x0da50, 0x07552, 0x056a0, 0x0abb7, 0x025d0, 0x092d0, 0x0cab5,
0x0a950, 0x0b4a0, 0x0baa4, 0x0ad50, 0x055d9, 0x04ba0, 0x0a5b0, 76, 0x052b0, 0x0a930,
0x07954, 0x06aa0, 0x0ad50, 0x05b52, 0x04b60, 0x0a6e6, 0x0a4e0, 0x0d260, 0x0ea65, 0x0d530,
0x05aa0, 0x076a3, 0x096d0, 0x04bd7, 0x04ad0, 0x0a4d0, 0x1d0b6, 0x0d250, 0x0d520, 0dd45,
0x0b5a0, 0x056d0, 0x055b2, 0x049b0, 0x0a577, 0x0a4b0, 0x0aa50, 0x1b255, 0x06d20, 0x0ada0)
var Animals = new Array("鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪");
var Gan = new Array("甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸");
var Zhi = new Array("子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥");
var now = new Date();
var SY = now.getFullYear();
var SM = now.getMonth();
var SD = now.getDate();
//==== 传入 offset 传回干支, 0=甲子
function cyclal(num) { return (Gan[num % 10] Zhi[num % 12]) }
//==== 传回农历 y年的总天数
function lYearDays(y) {
var i, sum = 348
for (i = 0x8000; >0x8; >>= 1) sum = (lunarInfo[y - 1900] & i) ? 1 : 0
반환 (합 도약일수(y))
}
//==== 传回农历 y年闰月적하늘
함수 도약일(y)
if (leapMonth(y)) return ((lunarInfo[y - 1900] & 0x10000) ? 30 : 29)
else return (0)
}
//==== 传回农历 y年闰哪个月 1-12 , 没闰传回 0
function LeapMonth(y) { return (lunarInfo[y - 1900] & 0xf) }
//====== =============================== 传回农历 y年m月적总天数
함수 MonthDays(y, m) { return ((lunarInfo[y - 1900] & (0x10000 >> m)) ? 30 : 29) }
//==== 음력 계산, 날짜 객체 전달, 음력 날짜 객체 반환
// 이 객체의 속성은 .year .month .day .isLeap .yearCyl 입니다. dayCyl .monCyl
Function Lunar(objDate) {
var i, leap = 0, temp = 0
var baseDate = new Date(1900, 0, 31)
var offset = (objDate - baseDate ) / 864 00000
this.dayCyl = 오프셋 40
this.monCyl = 14
for (i = 1900; i < 2050 && 오프셋 > 0; i ) {
temp = lYearDays( i)
offset -= temp
this.monCyl = 12
}
if (offset < 0) {
offset =
i- -;
이 .monCyl -= 12
월
this.isLeap = false
for (i = 1; i < 13 && 오프셋 > 0; i ) {
//윤달
윤달 1) && this.isLeap == false)
| && i == (도약 1)) this.isleap = false
오프셋- = 임시
. (this.isLeap)
{ this.isLeap = false }
else
{ this.isLeap = true; --this.monCyl }
if (offset
this.month = i
this.day = 오프셋 1
}
function YYMMDD() {
var cl = '<font color="#0000df" STYLE="font-size:9pt;">'
if (now.getDay( ) == 0) cl = '<font color="#c00000" STYLE="font-size:9pt;">'
if (now.getDay() == 6) cl = '< 글꼴 색상="#00c000" STYLE="font-size:9pt;">';
return (cl SY '연도' (SM 1) '월' SD '일'); >
if (now.getDay() == 0) cl = '< 글꼴 색상="#ff0000" STYLE="font-size:9pt;">';
if (now.getDay() == 6) cl = '<font color="#ff0000" STYLE=" 글꼴 -size:9pt;">';
return (cl day[now.getDay()] '</font>');
> 기능 cDay(m, d) {
var nStr1 = new Array('일', '1', '2', '3', '4', '5', '六', '七', '8', '9', '10');
var nStr2 = new Array('Chu', 'Ten', 'Twenty', '卅', '');
var s; ~ = '10일'
사례; 20: s = 'twenty';
사례 30: s = 'thirty';
기본값: s = nStr2[d / 10) ]; var sDObj = 새 날짜(SY, SM, SD)
var lDObj = 새 음력(sDObj)
var cl = '<font color="#000066" STYLE="글꼴 크기: 9pt;">' ;
// 음력 BB' (cld[d].isLeap?'Leap':' ') cld[d].lMonth ' 월 ' cld[d].lDay ' 일 cDay( lDObj.month, lDObj.day)
반환(cl tt '</font>')
function SolarDay3() {
var sTermInfo = new Array(0, 21208, 42467, 63836, 85337, 107014, 128867, 150921, 173149,
195551, 218072, 24 0693, 263343, 285989 , 308563, 331033, 353350, 375494, 397447, 419210,
440795, 462224, 483532, 504758)
var SolarTerm = new Array("작은 추위", "be 봄의 조닝 ", "비", "경저", "춘분", "청명", "곡우", "여름의 시작", "샤오만", "이삭", "하지", "소더위", '대더위', '가을의 시작', '더위의 끝', '하얀 이슬', '추분', '찬 이슬', '서리강하', '겨울의 시작', '눈이 내리다', '폭설' 눈', '동지')
. 축제", "0505 용선 축제", "0707 중국 발렌타인 데이", "0715 중국 유령 축제", "0815 중추절", "0909 중추절" , "1208 라바 축제", "1224 샤오니안", "0100* 새해 전야")
var sFtv = new Array("0101*설날", "0214 발렌타인 데이", "0308 여성의 날", " 0312 식목일", "0315 소비자 권리의 날", "0401 만우절", "0501 노동절", "0504 청년의 날", "0512 간호사의 날", "0601 어린이날", "0701 당 창건일을 기념하는 날" 홍콩의 귀환",
"0801 건군절", "0808 아버지의 날", "0909 Nansheng.com 기념일", "0910 스승의 날", "0928 공자 탄신일", "1001*국경일",
"1006년 노인의 날", "1024년 유엔의 날", "1112년 쑨원 탄신일", "1220년 마카오 귀환 기념", "1225년 크리스마스", "1226년 마오 주석 탄신일")
var sDObj = new Date(SY, SM, SD);
var lDObj = new Lunar(sDObj);
var lDPOS = new Array(3)
var Festival = '', SolarTerms = '' , SolarFestival = '', lunarFestival = '', tmp1, tmp2;
//달의 축제
for (i in lFtv)
if (lFtv[i].match(/^(d{2} )(.{2})([s*])(. )$/)) {
tmp1 = 숫자(RegExp.$1) - lDObj.월
tmp2 = 숫자(RegExp.$2) - lDObj. 일
if (tmp1 == 0 && tmp2 == 0) lunarFestival = RegExp.$4 🎜> ~ > 번호(RegExp.$1) - (SM 1)
tmp2 = 숫자(RegExp.$2) - SD
if (tmp 1 == 0 && tmp2 == 0) SolarFestival = RegExp.$4
// 🎜 tmp1 = 새 날짜 ((31556925974.7 * (Sy -1900) Sterminfo [Sm * 2 1] * 60000) date.utc (1900, 0, 6, 2, 5))
tmp2 = tmp1.getUTCDate()
if (tmp2 == SD) SolarTerms = SolarTerm[SM * 2 1]
tmp1 = new Date((31556925974.7 * (SY - 1900) sTermInfo[SM * 2] * 60000 ) Date.UTC(1900, 0, 6, 2, 5))
tmp2 = tmp1.getUTCDate()
if (tmp2 == SD) SolarTerms = SolarTerm[SM * 2]
if (solarTerms == '' && SolarFestival == '' && lunarFestival == '')
축제 = '';
else
축제 = '<FONT COLOR="#ff0000" STYLE="font-size:9pt;">' SolarTerms ' ' SolarFestival ' ' lunarFestival '</FONT>';
var cl = '<font color="#000066" STYLE="font-size:9pt;">';
반품(cl 페스티벌 '</font>');
}
function setCalendar() {
document.write(YYMMDD() ' ' weekday() ' ' SolarDay2() ' ' SolarDay3());
}
setCalendar();
//-->
//获取当月적阳历天数
function getNowMonthDays(년, 월) {
var isy = false;
if (연도 % 400 == 0 || (연도 % 4 == 0 && 연도 % 100 != 0)) isy = true;
스위치(월) {
사례 1:
사례 3:
사례 5:
사례 7: 🎜> 사례 8:
사례 10:
사례 12:
31을 반환합니다.
사례 4:
사례 6:
사례 9:
사례 11: 30을 반환합니다.
사례 2:
return isy ? 28:29;
}
}
🎜> var startweek = 7주차 - tempnum;
startweek % 7 반환
}
함수 getSolar Day(년, 월, 일 ) {
var sDObj = new Date(년, 월, 일);
var lDObj = new Lunar(sDObj)
var sDObj = new Date (cld[d].isLeap?'Leap': ' ') cld[d].lMonth '월' cld[d].lDay '일
return cDay(lDObj.month, lDObj.day);
🎜> function showMonth() {
디버거
var days = getNowMonthDays(SY, SM 1);
var startweek = getStartWeek()
var html = "<tr><td>월요일</td><td>화요일</td>
html = "<td> </td>"; index; << ;br>" getSolarDay(SY, SM, i) "</ td>";
7 == 0) {
>
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

인기 기사
2 포인트 박물관 : Bungle Wasteland Location Guide
4 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
스플릿 소설을이기는 데 얼마나 걸립니까?
3 몇 주 전
By DDD
Repo : 팀원을 부활시키는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
헬로 키티 아일랜드 어드벤처 : 거대한 씨앗을 얻는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌

인기 기사
2 포인트 박물관 : Bungle Wasteland Location Guide
4 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
스플릿 소설을이기는 데 얼마나 걸립니까?
3 몇 주 전
By DDD
Repo : 팀원을 부활시키는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
헬로 키티 아일랜드 어드벤처 : 거대한 씨앗을 얻는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제
Gmail 이메일의 로그인 입구는 어디에 있나요?
7114
9


자바 튜토리얼
1534
14


라라벨 튜토리얼
1254
25


PHP 튜토리얼
1205
29


Cakephp 튜토리얼
1153
46



JS 및 Baidu Maps를 사용하여 지도 이동 기능을 구현하는 방법

주식 분석을 위한 필수 도구: PHP 및 JS를 사용하여 캔들 차트를 그리는 단계를 알아보세요.

JS 및 Baidu Maps를 사용하여 지도 다각형 그리기 기능을 구현하는 방법

JS와 Baidu Map을 활용하여 지도 클릭 이벤트 처리 기능을 구현하는 방법
