js实现带农历和八字等信息的日历特效


Posted in Javascript onMay 16, 2016

自己也尝试着做了一下,收获蛮大,掌握了js日历特效的实现原理后,再想增加更多的功能,完全就可以自由发挥了,先在这里分享一下吧,有兴趣的可以试试!

本文实例为大家分享了js实现带农历等信息的日历特效,代码量很大,供大家参考,具体内容如下

效果图:

js实现带农历和八字等信息的日历特效

实现代码:

<HTML>

  <HEAD>
    <TITLE>万年历</TITLE>
    <META content="农历; 阳历; 月历; 节日; 时区; 节气; 八字; 干支; 生肖; gregorian solar; chinese lunar; calendar;" name=keywords>
    <META content=All name=robots>
    <META content="gregorian solar calendar and chinese lunar calendar" name=description>
    <meta charset="UTF-8"/>
    <style type="text/css">
      body {
        margin: 0px;
        padding: 0px;
      }
    </style>
  </head>

  <body>
    <center><br>
      <table cellpadding="0" cellspacing="0" id="1">
        <tr>
          <td>
            <style>
              #cal {
                width: 434px;
                border: 1px solid #c3d9ff;
                font-size: 12px;
                margin: 8px 0 0 15px;
              }

              #cal #top {
                height: 29px;
                line-height: 29px;
                background: #e7eef8;
                color: #003784;
                padding-left: 30px;
              }

              #cal #top select {
                font-size: 12px;
              }

              #cal #top input {
                padding: 0;
              }

              #cal ul#wk {
                margin: 0;
                padding: 0;
                height: 25px;
              }

              #cal ul#wk li {
                float: left;
                width: 60px;
                text-align: center;
                line-height: 25px;
                list-style: none;
              }

              #cal ul#wk li b {
                font-weight: normal;
                color: #c60b02;
              }

              #cal #cm {
                clear: left;
                border-top: 1px solid #ddd;
                border-bottom: 1px dotted #ddd;
                position: relative;
              }

              #cal #cm .cell {
                position: absolute;
                width: 42px;
                height: 36px;
                text-align: center;
                margin: 0 0 0 9px;
              }

              #cal #cm .cell .so {
                font: bold 16px arial;
              }

              #cal #bm {
                text-align: right;
                height: 24px;
                line-height: 24px;
                padding: 0 13px 0 0;
              }

              #cal #bm a {
                color: 7977ce;
              }

              #cal #fd {
                display: none;
                position: absolute;
                border: 1px solid #dddddf;
                background: #feffcd;
                padding: 10px;
                line-height: 21px;
                width: 150px;
              }

              #cal #fd b {
                font-weight: normal;
                color: #c60a00;
              }
            </style>
            <!--[if IE]>
<style>#cal #top{padding-top:4px;}#cal #top input{width:65px;}#cal #fd{width:170px;}</style>
<![endif]-->
            <div id="cal">
              <div id="top">公元 <select></select> 年 <select></select>月农历<span></span>年[<span></span>年]<input type="button" value="回到今天" title="点击后跳转回今天" style="padding:0px"></div>
              <ul id="wk">
                <li>一</li>
                <li>二</li>
                <li>三</li>
                <li>四</li>
                <li>五</li>
                <li><b>六</b></li>
                <li><b>日</b></li>
              </ul>
              <div id="cm"></div>
              <div id="bm"><a target="_blank" onmousedown="return c({'fm':'alop','title':this.innerHTML,'url':this.href,'p1':al_c(this),'p2':1})" href="javascript:void(0)">历史上的今天</a></div>
            </div>
          </td>
        </tr>
      </table>
    </center>
  </body>
  <script language="JavaScript"><!--
(function() {
  var S = navigator.userAgent.indexOf("MSIE") != -1 && !window.opera;

  function M(C) {
    return document.getElementById(C)
  }

  function R(C) {
    return document.createElement(C)
  }
  var P = [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, 0x055c0, 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, 0x04bd7, 0x04ad0, 0x0a4d0, 0x1d0b6, 0x0d250, 0x0d520, 0x0dd45, 0x0b5a0, 0x056d0, 0x055b2, 0x049b0, 0x0a577, 0x0a4b0, 0x0aa50, 0x1b255, 0x06d20, 0x0ada0, 0x14b63];
  var K = "甲乙丙丁戊己庚辛壬癸";
  var J = "子丑寅卯辰巳午未申酉戌亥";
  var O = "鼠牛虎兔龙蛇马羊猴鸡狗猪";
  var L = ["小寒", "大寒", "立春", "雨水", "惊蛰", "春分", "清明", "谷雨", "立夏", "小满", "芒种", "夏至", "小暑", "大暑", "立秋", "处暑", "白露", "秋分", "寒露", "霜降", "立冬", "小雪", "大雪", "冬至"];
  var D = [0, 21208, 43467, 63836, 85337, 107014, 128867, 150921, 173149, 195551, 218072, 240693, 263343, 285989, 308563, 331033, 353350, 375494, 397447, 419210, 440795, 462224, 483532, 504758];
  var B = "日一二三四五六七八九十";
  var H = ["正", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "腊"];
  var E = "初十廿卅";
  var V = {
    "0101": "*1元旦节",
    "0214": "情人节",
    "0305": "学雷锋纪念日",
    "0308": "妇女节",
    "0312": "植树节",
    "0315": "消费者权益日",
    "0401": "愚人节",
    "0501": "*1劳动节",
    "0504": "青年节",
    "0601": "国际儿童节",
    "0701": "中国共产党诞辰",
    "0801": "建军节",
    "0910": "中国教师节",
    "1001": "*3国庆节",
    "1224": "平安夜",
    "1225": "圣诞节"
  };
  var T = {
    "0101": "*2春节",
    "0115": "元宵节",
    "0505": "*1端午节",
    "0815": "*1中秋节",
    "0909": "重阳节",
    "1208": "腊八节",
    "0100": "除夕"
  };

  function U(Y) {
    function c(j, i) {
      var h = new Date((31556925974.7 * (j - 1900) + D[i] * 60000) + Date.UTC(1900, 0, 6, 2, 5));
      return (h.getUTCDate())
    }

    function d(k) {
      var h, j = 348;
      for (h = 32768; h > 8; h >>= 1) {
        j += (P[k - 1900] & h) ? 1 : 0
      }
      return (j + b(k))
    }

    function a(h) {
      return (K.charAt(h % 10) + J.charAt(h % 12))
    }

    function b(h) {
      if (g(h)) {
        return ((P[h - 1900] & 65536) ? 30 : 29)
      } else {
        return (0)
      }
    }

    function g(h) {
      return (P[h - 1900] & 15)
    }

    function e(i, h) {
      return ((P[i - 1900] & (65536 >> h)) ? 30 : 29)
    }

    function C(m) {
      var k, j = 0,
        h = 0;
      var l = new Date(1900, 0, 31);
      var n = (m - l) / 86400000;
      this.dayCyl = n + 40;
      this.monCyl = 14;
      for (k = 1900; k < 2050 && n > 0; k++) {
        h = d(k);
        n -= h;
        this.monCyl += 12
      }
      if (n < 0) {
        n += h;
        k--;
        this.monCyl -= 12
      }
      this.year = k;
      this.yearCyl = k - 1864;
      j = g(k);
      this.isLeap = false;
      for (k = 1; k < 13 && n > 0; k++) {
        if (j > 0 && k == (j + 1) && this.isLeap == false) {
          --k;
          this.isLeap = true;
          h = b(this.year)
        } else {
          h = e(this.year, k)
        }
        if (this.isLeap == true && k == (j + 1)) {
          this.isLeap = false
        }
        n -= h;
        if (this.isLeap == false) {
          this.monCyl++
        }
      }
      if (n == 0 && j > 0 && k == j + 1) {
        if (this.isLeap) {
          this.isLeap = false
        } else {
          this.isLeap = true;
          --k;
          --this.monCyl
        }
      }
      if (n < 0) {
        n += h;
        --k;
        --this.monCyl
      }
      this.month = k;
      this.day = n + 1
    }

    function G(h) {
      return h < 10 ? "0" + h : h
    }

    function f(i, j) {
      var h = i;
      return j.replace(/dd?d?d?|MM?M?M?|yy?y?y?/g, function(k) {
        switch (k) {
          case "yyyy":
            var l = "000" + h.getFullYear();
            return l.substring(l.length - 4);
          case "dd":
            return G(h.getDate());
          case "d":
            return h.getDate().toString();
          case "MM":
            return G((h.getMonth() + 1));
          case "M":
            return h.getMonth() + 1
        }
      })
    }

    function Z(i, h) {
      var j;
      switch (i, h) {
        case 10:
          j = "初十";
          break;
        case 20:
          j = "二十";
          break;
        case 30:
          j = "三十";
          break;
        default:
          j = E.charAt(Math.floor(h / 10));
          j += B.charAt(h % 10)
      }
      return (j)
    }
    this.date = Y;
    this.isToday = false;
    this.isRestDay = false;
    this.solarYear = f(Y, "yyyy");
    this.solarMonth = f(Y, "M");
    this.solarDate = f(Y, "d");
    this.solarWeekDay = Y.getDay();
    this.solarWeekDayInChinese = "星期" + B.charAt(this.solarWeekDay);
    var X = new C(Y);
    this.lunarYear = X.year;
    this.shengxiao = O.charAt((this.lunarYear - 4) % 12);
    this.lunarMonth = X.month;
    this.lunarIsLeapMonth = X.isLeap;
    this.lunarMonthInChinese = this.lunarIsLeapMonth ? "闰" + H[X.month - 1] : H[X.month - 1];
    this.lunarDate = X.day;
    this.showInLunar = this.lunarDateInChinese = Z(this.lunarMonth, this.lunarDate);
    if (this.lunarDate == 1) {
      this.showInLunar = this.lunarMonthInChinese + "月"
    }
    this.ganzhiYear = a(X.yearCyl);
    this.ganzhiMonth = a(X.monCyl);
    this.ganzhiDate = a(X.dayCyl++);
    this.jieqi = "";
    this.restDays = 0;
    if (c(this.solarYear, (this.solarMonth - 1) * 2) == f(Y, "d")) {
      this.showInLunar = this.jieqi = L[(this.solarMonth - 1) * 2]
    }
    if (c(this.solarYear, (this.solarMonth - 1) * 2 + 1) == f(Y, "d")) {
      this.showInLunar = this.jieqi = L[(this.solarMonth - 1) * 2 + 1]
    }
    if (this.showInLunar == "清明") {
      this.showInLunar = "清明节";
      this.restDays = 1
    }
    this.solarFestival = V[f(Y, "MM") + f(Y, "dd")];
    if (typeof this.solarFestival == "undefined") {
      this.solarFestival = ""
    } else {
      if (/\*(\d)/.test(this.solarFestival)) {
        this.restDays = parseInt(RegExp.$1);
        this.solarFestival = this.solarFestival.replace(/\*\d/, "")
      }
    }
    this.showInLunar = (this.solarFestival == "") ? this.showInLunar : this.solarFestival;
    this.lunarFestival = T[this.lunarIsLeapMonth ? "00" : G(this.lunarMonth) + G(this.lunarDate)];
    if (typeof this.lunarFestival == "undefined") {
      this.lunarFestival = ""
    } else {
      if (/\*(\d)/.test(this.lunarFestival)) {
        this.restDays = (this.restDays > parseInt(RegExp.$1)) ? this.restDays : parseInt(RegExp.$1);
        this.lunarFestival = this.lunarFestival.replace(/\*\d/, "")
      }
    }
    if (this.lunarMonth == 12 && this.lunarDate == e(this.lunarYear, 12)) {
      this.lunarFestival = T["0100"];
      this.restDays = 1
    }
    this.showInLunar = (this.lunarFestival == "") ? this.showInLunar : this.lunarFestival;
    this.showInLunar = (this.showInLunar.length > 4) ? this.showInLunar.substr(0, 2) + "..." : this.showInLunar
  }
  var Q = (function() {
    var X = {};
    X.lines = 0;
    X.dateArray = new Array(42);

    function Y(a) {
      return (((a % 4 === 0) && (a % 100 !== 0)) || (a % 400 === 0))
    }

    function G(a, b) {
      return [31, (Y(a) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][b]
    }

    function C(a, b) {
      a.setDate(a.getDate() + b);
      return a
    }

    function Z(a) {
      var f = 0;
      var c = new U(new Date(a.solarYear, a.solarMonth - 1, 1));
      var d = (c.solarWeekDay - 1 == -1) ? 6 : c.solarWeekDay - 1;
      X.lines = Math.ceil((d + G(a.solarYear, a.solarMonth - 1)) / 7);
      for (var e = 0; e < X.dateArray.length; e++) {
        if (c.restDays != 0) {
          f = c.restDays
        }
        if (f > 0) {
          c.isRest = true
        }
        if (d-- > 0 || c.solarMonth != a.solarMonth) {
          X.dateArray[e] = null;
          continue
        }
        var b = new U(new Date());
        if (c.solarYear == b.solarYear && c.solarMonth == b.solarMonth && c.solarDate == b.solarDate) {
          c.isToday = true
        }
        X.dateArray[e] = c;
        c = new U(C(c.date, 1));
        f--
      }
    }
    return {
      init: function(a) {
        Z(a)
      },
      getJson: function() {
        return X
      }
    }
  })();
  var W = (function() {
    var C = M("top").getElementsByTagName("SELECT")[0];
    var X = M("top").getElementsByTagName("SELECT")[1];
    var G = M("top").getElementsByTagName("SPAN")[0];
    var c = M("top").getElementsByTagName("SPAN")[1];
    var Y = M("top").getElementsByTagName("INPUT")[0];

    function a(g) {
      G.innerHTML = g.ganzhiYear;
      c.innerHTML = g.shengxiao
    }

    function b(g) {
      C[g.solarYear - 1901].selected = true;
      X[g.solarMonth - 1].selected = true
    }

    function f() {
      var j = C.value;
      var g = X.value;
      var i = new U(new Date(j, g - 1, 1));
      Q.init(i);
      N.draw();
      if (this == C) {
        i = new U(new Date(j, 3, 1));
        G.innerHTML = i.ganzhiYear;
        c.innerHTML = i.shengxiao
      }
      var h = new U(new Date());
      Y.style.visibility = (j == h.solarYear && g == h.solarMonth) ? "hidden" : "visible"
    }

    function Z() {
      var g = new U(new Date());
      a(g);
      b(g);
      Q.init(g);
      N.draw();
      Y.style.visibility = "hidden"
    }

    function d(k, g) {
      for (var j = 1901; j < 2050; j++) {
        var h = R("OPTION");
        h.value = j;
        h.innerHTML = j;
        if (j == k) {
          h.selected = "selected"
        }
        C.appendChild(h)
      }
      for (var j = 1; j < 13; j++) {
        var h = R("OPTION");
        h.value = j;
        h.innerHTML = j;
        if (j == g) {
          h.selected = "selected"
        }
        X.appendChild(h)
      }
      C.onchange = f;
      X.onchange = f
    }

    function e(g) {
      d(g.solarYear, g.solarMonth);
      G.innerHTML = g.ganzhiYear;
      c.innerHTML = g.shengxiao;
      Y.onclick = Z;
      Y.style.visibility = "hidden"
    }
    return {
      init: function(g) {
        e(g)
      },
      reset: function(g) {
        b(g)
      }
    }
  })();
  var N = (function() {
    function C() {
      var Z = Q.getJson();
      var c = Z.dateArray;
      M("cm").style.height = Z.lines * 38 + 2 + "px";
      M("cm").innerHTML = "";
      for (var a = 0; a < c.length; a++) {
        if (c[a] == null) {
          continue
        }
        var X = R("DIV");
        if (c[a].isToday) {
          X.style.border = "1px solid #a5b9da";
          X.style.background = "#c1d9ff"
        }
        X.className = "cell";
        X.style.left = (a % 7) * 60 + "px";
        X.style.top = Math.floor(a / 7) * 38 + 2 + "px";
        var b = R("DIV");
        b.className = "so";
        b.style.color = ((a % 7) > 4 || c[a].isRest) ? "#c60b02" : "#313131";
        b.innerHTML = c[a].solarDate;
        X.appendChild(b);
        var Y = R("DIV");
        Y.style.color = "#666";
        Y.innerHTML = c[a].showInLunar;
        X.appendChild(Y);
        X.onmouseover = (function(d) {
          return function(f) {
            F.show({
              dateIndex: d,
              cell: this
            })
          }
        })(a);
        X.onmouseout = function() {
          F.hide()
        };
        M("cm").appendChild(X)
      }
      var G = R("DIV");
      G.id = "fd";
      M("cm").appendChild(G);
      F.init(G)
    }
    return {
      draw: function(G) {
        C(G)
      }
    }
  })();
  var F = (function() {
    var C;

    function Y(e, c) {
      if (arguments.length > 1) {
        var b = /([.*+?^=!:${}()|[\]\/\\])/g,
          Z = "{".replace(b, "\\$1"),
          d = "}".replace(b, "\\$1");
        var a = new RegExp("#" + Z + "([^" + Z + d + "]+)" + d, "g");
        if (typeof(c) == "object") {
          return e.replace(a, function(f, h) {
            var g = c[h];
            return typeof(g) == "undefined" ? "" : g
          })
        }
      }
      return e
    }

    function G(b) {
      var a = Q.getJson().dateArray[b.dateIndex];
      var Z = b.cell;
      var c = "#{solarYear} 年 #{solarMonth} 月 #{solarDate} 日 #{solarWeekDayInChinese}";
      c += "<br><b>农历 #{lunarMonthInChinese}月#{lunarDateInChinese}</b>";
      c += "<br>#{ganzhiYear}年 #{ganzhiMonth}月 #{ganzhiDate}日";
      if (a.solarFestival != "" || a.lunarFestival != "" || a.jieqi != "") {
        c += "<br><b>#{lunarFestival} #{solarFestival} #{jieqi}</b>"
      }
      C.innerHTML = Y(c, a);
      C.style.top = Z.offsetTop + Z.offsetHeight - 5 + "px";
      C.style.left = Z.offsetLeft + Z.offsetWidth - 5 + "px";
      C.style.display = "block"
    }

    function X() {
      C.style.display = "none"
    }
    return {
      show: function(Z) {
        G(Z)
      },
      hide: function() {
        X()
      },
      init: function(Z) {
        C = Z
      }
    }
  })();
  var I = (function() {
    var G = M("bm").getElementsByTagName("A")[0];

    function C(X) {
      G.href = "http://zh.wikipedia.org/zh-cn/" + X.solarMonth + "%E6%9C%88" + X.solarDate + "%E6%97%A5"
    }
    return {
      setLink: function(X) {
        C(X)
      }
    }
  })();
  var A = new U(new Date());
  if (S) {
    window.attachEvent("onload", function() {
      W.reset(A)
    })
  }
  W.init(A);
  Q.init(A);
  N.draw();
  I.setLink(A)
})();
//--></script>

</html>

以上就是本文的全部内容,希望对大家学习javascript程序设计有所帮助。

Javascript 相关文章推荐
js静态方法与实例方法分析
Jul 04 Javascript
jQuery的事件委托实例分析
Jul 15 Javascript
JS实现的在线调色板实例(附demo源码下载)
Mar 01 Javascript
js简单实现图片延迟加载的方法
Jul 19 Javascript
js实现碰撞检测特效代码分享
Oct 16 Javascript
百度多文件异步上传控件webuploader基本用法解析
Nov 07 Javascript
使用JS和canvas实现gif动图的停止和播放代码
Sep 01 Javascript
Angular实现搜索框及价格上下限功能
Jan 19 Javascript
vue.js中proxyTable 转发请求的实现方法
Sep 20 Javascript
vuex+axios+element-ui实现页面请求loading操作示例
Feb 02 Javascript
vue-router的hooks用法详解
Jun 08 Javascript
Vue实现一种简单的无限循环滚动动画的示例
Jan 10 Vue.js
jQuery 常用代码集锦(必看篇)
May 16 #Javascript
阻止表单提交按钮多次提交的完美解决方法
May 16 #Javascript
js判断登陆用户名及密码是否为空的简单实例
May 16 #Javascript
javascript实现起伏的水波背景效果
May 16 #Javascript
JavaScript判断用户名和密码不能为空的实现代码
May 16 #Javascript
JS闭包、作用域链、垃圾回收、内存泄露相关知识小结
May 16 #Javascript
js流动式效果显示当前系统时间
May 16 #Javascript
You might like
实用函数2
2007/11/08 PHP
php下使用SMTP发邮件的代码
2008/01/10 PHP
php中将汉字转换成拼音的函数代码
2012/09/08 PHP
如何在PHP中使用正则表达式进行查找替换
2013/06/13 PHP
又一个PHP实现的冒泡排序算法分享
2014/08/21 PHP
php简单图像创建入门实例
2015/06/10 PHP
PHP基于单例模式编写PDO类的方法
2016/09/13 PHP
使用javascript访问XML数据的实例
2006/12/27 Javascript
JS继承 笔记
2011/07/13 Javascript
JavaScript中创建类/对象的几种方法总结
2013/11/29 Javascript
浅析jquery如何判断滚动条滚到页面底部并执行事件
2016/04/29 Javascript
Javascript类型系统之String字符串类型详解
2016/06/21 Javascript
javascript验证内容为数字以及长度为10的简单实例
2016/08/20 Javascript
微信小程序 绘图之饼图实现
2016/10/24 Javascript
浅析Angular19 自定义表单控件
2018/01/31 Javascript
解决vue单页使用keep-alive页面返回不刷新的问题
2018/03/13 Javascript
vue通过video.js解决m3u8视频播放格式的方法
2019/07/30 Javascript
nodejs一个简单的文件服务器的创建方法
2019/09/13 NodeJs
微信小程序 多行文本显示...+显示更多按钮和收起更多按钮功能
2019/09/26 Javascript
layui实现数据表格隐藏列的示例
2019/10/25 Javascript
Vue如何基于vue-i18n实现多国语言兼容
2020/07/17 Javascript
js实现飞机大战游戏
2020/08/26 Javascript
js canvas实现五子棋小游戏
2021/01/22 Javascript
使用C#配合ArcGIS Engine进行地理信息系统开发
2016/02/19 Python
python使用thrift教程的方法示例
2019/03/21 Python
python进阶之自定义可迭代的类
2019/08/20 Python
pytorch 多分类问题,计算百分比操作
2020/07/09 Python
AE美国鹰日本官方网站: American Eagle Outfitters
2016/12/10 全球购物
生物化工工艺专业应届生求职信
2013/10/08 职场文书
实习自我鉴定范文
2013/10/30 职场文书
业务代表的岗位职责
2013/11/16 职场文书
《七颗钻石》教学反思
2014/02/28 职场文书
电子专业自荐信
2014/07/01 职场文书
夫妻双方自愿离婚协议书
2014/10/24 职场文书
2014年组织部工作总结
2014/11/14 职场文书
Python编程编写完善的命令行工具
2021/09/15 Python