全年计算
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
</body>
</html>
<script>
// 计算一年每月多少天
function calcDays_dy(year, month) {
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
return 31;
}
if (month == 2) {
if (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)) {
return 29;
} else {
return 28;
}
}
return 30;
}
console.log(calcDays_dy(2023,1));
// 计算一年几个月
var num = 12
var arr = []
for (var i = 1; i <= num; i++) {
arr.push(i)
}
// 生成一年的日期
var getDateList = arr.map((item, index) => {
// 时间对象
var date = new Date()
// 获取年
var year = date.getFullYear()
// 调用方法 得到这一年中每月的数据
let num = calcDays_dy(year, item)
// 声明数组 往数组中存入 每月的数据
let monthly = []
for (var i = 1; i <= num; i++) {
// 月和日补0
var month = item < 10 ? '0' + item : item
var day = (i) < 10 ? '0' + (i) : (i)
// 数组push
monthly.push(month + '-' + day)
}
return monthly
})
console.log(getDateList);
// 单1月累加
let singleMonth = getDateList[0].map((item, index) => {
// 字符替换
let str = item.replace('-', '.')
// 分割成数组
let newStr = str.split('.')
// 字符替换 01 转换成 1
if (newStr[0] * 1 < 10) {
newStr[0] = newStr[0][0] == '0' ? newStr[0].replace('0', '') : newStr[0]
}
// 组合成 1.01
let combination = newStr[0] + '.' + newStr[1]
// 字符串转成数字
return combination * 1
})
console.log(singleMonth);
let monthlyAccumulation = singleMonth.reduce((a, b) => {
return a + b
})
console.log(monthlyAccumulation,'单一月的累加');
// 全年累加
let yearRound = getDateList.map((item,index)=>{
let getAllList = getDateList[index].map((it,i)=>{
let str = it.replace('-','.')
let newStr = str.split('.')
if (newStr[0] * 1 < 10) {
newStr[0] = newStr[0][0] == '0' ? newStr[0].replace('0', '') : newStr[0]
}
// 组合成 1.01
let combination = newStr[0] + '.' + newStr[1]
// 字符串转成数字
return combination * 1
})
// 累加
let oneresult = getAllList.reduce((a, b) => {
return a + b;
})
return oneresult
})
let twelveResult = yearRound.reduce((a, b) => {
return a + b;
})
console.log(twelveResult,'全年的累加');
</script>
<script>
var arr = [
1.01,
1.02,
1.03,
1.04,
1.05,
1.06,
1.07,
1.08,
1.09,
1.1,
1.11,
1.12,
1.13,
1.14,
1.15,
1.16,
1.17,
1.18,
1.19,
1.2,
1.21,
1.22,
1.23,
1.24,
1.25,
1.26,
1.27,
1.28,
1.29,
1.3,
1.31,
]
let xx = arr.reduce((a, b) => {
return a + b;
})
console.log(xx,'一月份的累加');
</script>
<script>
// 100 百年好合
// 99.99 长长久久
// 88.88 发发发
// 66.66 666
// 13.14 一生一世
// 520.21 最重要的要给媳妇发520啊
// 888.88
</script>