define(function (require, exports, module) {
exports.trimToDay = function (d) {
d = d || new Date();
if (!(d instanceof Date)) {
d = new Date(d + '');
}
var x = new Date();
x.setTime(d.getTime() - d.getTime() % (1000 * 3600 * 24));
return x;
};
//exports.addDays = function (date, days) {
// var x = new Date();
// x.setTime(date.getTime() - date.getTime() % (1000 * 3600 * 24) + 1000 * 3600 * 24 * days);
// return x;
//};
exports.addDays = function (date, offset) {
date = exports.toDate(date);
return new Date(date.getFullYear(), date.getMonth(), date.getDate() + offset);
};
exports.toDate = function (date) {
return date instanceof Date ? date : new Date(Date.parse(date));
};
exports.formatDate = function (date, format) {
/// 格式化指定日期
/// 格式化字符串
date = exports.toDate(date);
format = format || "yyyy-MM-dd";
var o = {
"M+": date.getMonth() + 1, //month
"d+": date.getDate(), //day
"h+": date.getHours(), //hour
"m+": date.getMinutes(), //minute
"s+": date.getSeconds(), //second
"q+": Math.floor((date.getMonth() + 3) / 3), //quarter
"S": date.getMilliseconds() //millisecond
};
if (/(y+)/i.test(format)) {
format = format.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
}
for (var k in o) {
if (new RegExp("(" + k + ")").test(format)) {
format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
}
}
return format;
};
exports.formatSellDate = function (date) {
date = exports.toDate(date);
var today = exports.addDays(new Date(), 0);
var offset = Math.floor((date - today) / 1000 / 60);
var hour = Math.floor(offset / 60);
var minute = offset % 60;
if (hour < 24) return "今天" + hour + "点" + (minute ? minute + "分" : "");
else if (hour < 72) {
return ["明天", '后天', '大后天'][Math.floor(hour / 24) - 1] + (hour % 24) + "点" + (minute ? minute + "分" : "");
} else {
return exports.formatDate(date, "MM月dd日 hh:mm");
}
};
exports.getDaysDifference = function (date1, date2) {
/// 获得date1到date2之间隔了多少天
var time1 = Math.floor(exports.toDate(date1).getTime() / 1000 / 60 / 60 / 24);
var time2 = Math.floor(exports.toDate(date2).getTime() / 1000 / 60 / 60 / 24);
return time2 - time1;
}
exports.format24hTo12h = function (str) {
/// 将24小时制式时间转换为12小时制式
if (!str)
return '';
var args = str.split('/');
return args.map(function (t) {
if (!/0?(\d{1,2}):(\d{1,2})/.exec(t))
return "";
var h = parseInt(RegExp.$1, 10);
return h < 13 ? "上午" + h + ":" + RegExp.$2 : "下午" + (h - 12) + ":" + RegExp.$2;
});
};
exports.selectTrain = function (trainList, trainFilter, seatOrder, seatFirst, count) {
var seat, train;
if (seatFirst) {
//席别优先
seat = _.find(seatOrder, function (s) {
var treg = _.find(trainFilter, function (t) {
train = _.find(trainList, function (item) {
return t.test(item.code) && (_.findWhere(item.tickets, { code: s }) || {}).count >= count;
});
return typeof (train) != 'undefined';
});
return typeof (treg) != 'undefined';
});
} else {
//车次优先
_.find(trainFilter, function (t) {
seat = _.find(seatOrder, function (s) {
train = _.find(trainList, function (item) {
return t.test(item.code) && (_.findWhere(item.tickets, { code: s }) || {}).count >= count;
});
return typeof (train) != 'undefined';
});
return typeof (seat) != 'undefined';
});
}
if (seat)
return { seat: seat, train: train };
return null;
}
});