웹 프론트엔드 JS 튜토리얼 매우 유용한 js 달력 알고리즘 자세한 code_javascript 기술

매우 유용한 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> 수요일 목요일 금요일 토요일 일요일 <tr>"; startweek; i ) {
             html = "<td> </td>"; index; << ;br>" getSolarDay(SY, SM, i) "</ td>";
                                      7 == 0) {
                                              >                                                     


본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

JS 및 Baidu Maps를 사용하여 지도 이동 기능을 구현하는 방법 JS 및 Baidu Maps를 사용하여 지도 이동 기능을 구현하는 방법 Nov 21, 2023 am 10:00 AM

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

권장 사항: 우수한 JS 오픈 소스 얼굴 감지 및 인식 프로젝트 권장 사항: 우수한 JS 오픈 소스 얼굴 감지 및 인식 프로젝트 Apr 03, 2024 am 11:55 AM

권장 사항: 우수한 JS 오픈 소스 얼굴 감지 및 인식 프로젝트

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

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

PHP 및 JS 개발 팁: 주식 캔들 차트 그리기 방법 익히기 PHP 및 JS 개발 팁: 주식 캔들 차트 그리기 방법 익히기 Dec 18, 2023 pm 03:39 PM

PHP 및 JS 개발 팁: 주식 캔들 차트 그리기 방법 익히기

PHP와 JS를 사용하여 주식 촛대 차트를 만드는 방법 PHP와 JS를 사용하여 주식 촛대 차트를 만드는 방법 Dec 17, 2023 am 08:08 AM

PHP와 JS를 사용하여 주식 촛대 차트를 만드는 방법

JS 및 Baidu Maps를 사용하여 지도 다각형 그리기 기능을 구현하는 방법 JS 및 Baidu Maps를 사용하여 지도 다각형 그리기 기능을 구현하는 방법 Nov 21, 2023 am 10:53 AM

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

new 연산자는 js에서 무엇을 합니까? new 연산자는 js에서 무엇을 합니까? Nov 13, 2023 pm 04:05 PM

new 연산자는 js에서 무엇을 합니까?

JS와 Baidu Map을 활용하여 지도 클릭 이벤트 처리 기능을 구현하는 방법 JS와 Baidu Map을 활용하여 지도 클릭 이벤트 처리 기능을 구현하는 방법 Nov 21, 2023 am 11:11 AM

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

See all articles