Last active
November 29, 2017 18:37
-
-
Save emanoelqueiroz/451f1470932ad3bb72e3d81d2fb0e4d3 to your computer and use it in GitHub Desktop.
Código Preciso
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var dataDb = [{ | |
id: 1, | |
dataIni: new Date('2017-01-20'), | |
dataFin: new Date('2017-01-24'), | |
val: 50 | |
}, | |
{ | |
id: 2, | |
dataIni: new Date('2017-01-25'), | |
dataFin: new Date('2017-02-08'), | |
val: 100 | |
} | |
]; | |
function lastDay(month, year) { | |
let d = new Date(year, month, 0); | |
return d.getDate(); | |
} | |
function cleanDatesVal(arr) { | |
let objs = []; | |
for (let i = 0; i < arr.length; i++) { | |
let obj = {}; | |
let dataIniDays = arr[i].dataIni.getDate() + 1; | |
let dataFinDays = arr[i].dataFin.getDate() + 1; | |
let dataIniMonth = arr[i].dataIni.getMonth() + 1; | |
let dataFinMonth = arr[i].dataFin.getMonth() + 1; | |
let dataIniYear = arr[i].dataIni.getFullYear(); | |
let dataFinYear = arr[i].dataFin.getFullYear(); | |
if (dataIniMonth !== dataFinMonth) { | |
let lastDayVal = lastDay(dataIniMonth, dataIniYear); | |
let dayUntilFinal = (lastDayVal - dataIniDays) + 1; | |
let diasToSave = dayUntilFinal + dataFinDays; | |
let finalVal = (arr[i].val / diasToSave) * dayUntilFinal; | |
obj['id'] = arr[i].id; | |
obj['dias'] = dayUntilFinal; | |
obj['val'] = finalVal; | |
objs.push(obj); | |
continue; | |
} | |
obj['id'] = arr[i].id; | |
obj['dias'] = (dataFinDays - dataIniDays) + 1; | |
obj['val'] = arr[i].val; | |
objs.push(obj); | |
} | |
return objs; | |
} | |
function getFinalVal(arr) { | |
let val = 0; | |
for (let i = 0; i < arr.length; i++) { | |
val += arr[i].val; | |
} | |
return val.toFixed(2); | |
} | |
var objs = cleanDatesVal(dataDb); | |
console.log(`---------------------------------`); | |
console.log(`Valor Final: ${getFinalVal(objs)}`); | |
console.log(`---------------------------------`); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment