var barcode = require("./barcode");
var qrcode = require("./qrcode");

const formatTime = (date, fmt) => {
  try {
    if (!date) {
      return date;
    }
    if (typeof date == "number") {
      date = new Date(date);
    }
    // console.log(date);
    var o = {
      "M+": date.getMonth() + 1, //月份
      "d+": date.getDate(), //日
      "h+": date.getHours(), //小时
      "m+": date.getMinutes(), //分
      "s+": date.getSeconds(), //秒
      "q+": Math.floor((date.getMonth() + 3) / 3), //季度
      S: date.getMilliseconds() //毫秒
    };
    if (/(y+)/.test(fmt))
      fmt = fmt.replace(
        RegExp.$1,
        (date.getFullYear() + "").substr(4 - RegExp.$1.length)
      );
    for (var k in o)
      if (new RegExp("(" + k + ")").test(fmt))
        fmt = fmt.replace(
          RegExp.$1,
          RegExp.$1.length == 1
            ? o[k]
            : ("00" + o[k]).substr(("" + o[k]).length)
        );
    return fmt;
  } catch (error) {
    return date;
  }
};

const formatNumber = n => {
  n = n.toString();
  return n[1] ? n : "0" + n;
};

function convert_length(length) {
  return Math.round((wx.getSystemInfoSync().windowWidth * length) / 750);
}

function barc(id, code, width, height) {
  barcode.code128(
    wx.createCanvasContext(id),
    code,
    convert_length(width),
    convert_length(height)
  );
}

function qrc(id, code, width, height) {
  qrcode.api.draw(code, {
    ctx: wx.createCanvasContext(id),
    width: convert_length(width),
    height: convert_length(height)
  });
}
function fmtDate(obj) {
  var date = new Date(obj);
  var y = 1900 + date.getYear();
  var m = "0" + (date.getMonth() + 1);
  var d = "0" + date.getDate();
  return (
    y +
    "-" +
    m.substring(m.length - 2, m.length) +
    "-" +
    d.substring(d.length - 2, d.length)
  );
}

//计算下单的时间与现在的时间的
function timechuo(startTime) {
  var s1 = new Date(startTime.replace(/-/g, "/"));
  var s2 = new Date();
  var runTime = parseInt((s1.getTime() - s2.getTime()) / 1000);
  var year = Math.floor(runTime / 86400 / 365);
  var runTime = runTime % (86400 * 365);
  var month = Math.floor(runTime / 86400 / 30);
  var runTime = runTime % (86400 * 30);
  var day = Math.floor(runTime / 86400);
  var runTime = runTime % 86400;
  var hour = Math.floor(runTime / 3600);
  var runTime = runTime % 3600;
  var minute = Math.floor(runTime / 60);
  var runTime = runTime % 60;
  var second = runTime;
  console.log(month, day, hour, minute, second);
  return (day+"天"+hour+"小时"+minute+"分钟")
}


//计算时间差
function timecha(endTime,startTime) {
  var s1 = new Date(endTime.replace(/-/g, "/"));
  var s2 = new Date(startTime.replace(/-/g, "/"));
  var runTime = parseInt((s1.getTime() - s2.getTime()) / 1000);
  var year = Math.floor(runTime / 86400 / 365);
  var runTime = runTime % (86400 * 365);
  var month = Math.floor(runTime / 86400 / 30);
  var runTime = runTime % (86400 * 30);
  var day = Math.floor(runTime / 86400);
  var runTime = runTime % 86400;
  var hour = Math.floor(runTime / 3600);
  var runTime = runTime % 3600;
  var minute = Math.floor(runTime / 60);
  var runTime = runTime % 60;
  var second = runTime;
  console.log(month, day, hour, minute, second);
  return (day+"天"+hour+"小时"+minute+"分钟")
}

module.exports = {
  formatTime: formatTime,
  barcode: barc,
  qrcode: qrc,
  fmtDate: fmtDate,
  timechuo:timechuo,
  timecha:timecha
};
