const formatTime = (date, spllit) => {
  const year = date.getFullYear()
  const month = date.getMonth() + 1
  const day = date.getDate()

  return `${[year, month, day].map(formatNumber).join(spllit||'/')}`
}

const formatNumber = n => {
  n = n.toString()
  return n[1] ? n : `0${n}`
}

/**
 * 获取指定月起始日期
 */
function getMonthStartEnd(date) {
  var monthStart = new Date(date.getFullYear(), date.getMonth(), 1); // 获取本月第一天的日期时间
  var monthEnd = new Date(date.getFullYear(), date.getMonth() + 1, 0, 23, 59, 59); // 获取本月最后一天的日期时间（时间为23:59:59）
  console.log('本月开始时间：' + monthStart);
  console.log('本月结束时间：' + monthEnd);
  return {
    startTime: monthStart,
    endTime: monthEnd
  }
}

/**
 * 生成UUID
 */
const uuid = function () {
  var s = [];
  var hexDigits = "0123456789abcdef";
  for (var i = 0; i < 36; i++) {
    s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
  }
  s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010
  s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01
  s[8] = s[13] = s[18] = s[23] = "-";

  var uuid = s.join("");
  return uuid
}

/**
 * 验证密码
 * @param params 密码为6-20位数字、字母或下划线，至少包括其中两种，以字母开头!
 */
const regPwd = function (pwd) {
  const reg = /^[a-zA-Z](?![a-zA-Z]+$)\w{5,19}$/
  return reg.test(pwd);
}

module.exports = {
  formatTime,
  uuid,
  getMonthStartEnd,
  regPwd
}