helpers.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. /**
  2. * Created by Ryn on 2016/8/6.
  3. * 帮助函数
  4. */
  5. var H = (function() {
  6. // 一些私有变量
  7. // 一些公有变量、函数
  8. /**
  9. *
  10. * 判断这一年是闰年还是平年
  11. * @param year {String/Number} 年份
  12. * @returns {boolean}
  13. */
  14. function isLeapYear(year) {
  15. if (!typeof +year === 'number') {
  16. throw new Error("年份格式不正确");
  17. }
  18. if (+year < 1790) {
  19. throw new Error("年份不能低于1790年");
  20. }
  21. // 计算闰年方法
  22. // 1.能被4整除而不能被100整除
  23. // 2.能被400整除
  24. return (year % 4 === 0 && year % 100 !== 0) || (year % 400 === 0);
  25. }
  26. /**
  27. * 返回月份中的第一天是星期几
  28. * @returns {number}
  29. * 1 星期一
  30. * 2 星期二
  31. * 3 星期三
  32. * 4 星期四
  33. * 5 星期五
  34. * 6 星期六
  35. * 0 星期天
  36. */
  37. function weekOfMonth(date) {
  38. if (!date) date = new Date();
  39. return new Date(getFullYear(date), getMonth(date), 1).getDay();
  40. }
  41. /**
  42. * 获取月份
  43. * @param date
  44. * @returns {*|number}
  45. */
  46. function getMonth(date) {
  47. if (!date) date = new Date();
  48. return date.getMonth();
  49. }
  50. /**
  51. * 获取年份
  52. * @param date
  53. * @returns {number}
  54. */
  55. function getFullYear(date) {
  56. if (!date) date = new Date();
  57. return date.getFullYear();
  58. }
  59. /**
  60. * 获取一月中的某一天
  61. * @param date
  62. * @returns {number}
  63. */
  64. function getDate(date) {
  65. if (!date) date = new Date();
  66. return date.getDate();
  67. }
  68. // 暴露需要提供的方法
  69. return {
  70. isLeapYear : isLeapYear,
  71. weekOfMonth : weekOfMonth,
  72. getFullYear : getFullYear,
  73. getMonth : getMonth,
  74. getDate : getDate
  75. }
  76. })();