根据存储在数据库中的天数,我一直试图在数年内和数月内获得有效期,或者仅在少于365个包的情况下获得有效期。
我所做的是以天为单位存储包裹的有效性计数。例如。 1680或365。
我需要分别显示5年和1年x月。
我已计算1个月为28天。
有人能帮助我吗?我尝试了什么:
if (days_count > 336) {
year = count/28*12; // here i will get the year.how will i get Month
} else {
// calculate for month and days
month = count/28;
}
答案 0 :(得分:0)
要回答您对代码发表评论的问题,您应该使用mod运算符和/运算符的组合来获取月份数。
year = count / (28 * 12);
month = (count % (28 *12)) / 28;
这应该给你正确的年份和月份数,但是使用28作为月份的总和似乎有点奇怪。 还要确保你使用28 * 12左右的parantheses,否则你的编译器或解释器会混淆操作的优先级。
答案 1 :(得分:0)
$count = 1710;
$totalMonth = (int) ($count/28) ; // 5
echo $year = (int) ($totalMonth/12);// 1
echo $month = $totalMonth % 12;
答案 2 :(得分:0)
我相信,这就是你要找的东西:
function convertNumberOfDaysToMonthYear(numberOfDays) {
var str = '';
var values = [
[' year', 365],
[' month', 28],
[' day', 1]
];
for (var i = 0; i < values.length; i++) {
var amount = Math.floor(numberOfDays / values[i][1]);
if (amount >= 1) {
str += amount + values[i][0] + (amount > 1 ? 's' : '') + ' ';
numberOfDays -= amount * values[i][1];
}
}
return str;
}
console.log(convertNumberOfDaysToMonthYear(367));
console.log(convertNumberOfDaysToMonthYear(730));
console.log(convertNumberOfDaysToMonthYear(1000));