JSFiddle - React, Tailwind, and code Playground
by Adrian Mejias
HTML
<h3>Debug</h3>
<ul id="debug"></ul>
JavaScript
function debug(msg) {
console.log(msg);
$('#debug').append($('<li>').text(msg));
}
var start = {
year: 2013,
month: 9,
day: 1
};
var end = {
year: 2014,
month: 9,
day: 1
};
var absolute = [{
note: 'rent',
day: 1,
amount: 780.00
}];
var relative = [{
note: 'gas',
frequency: 14,
amount: 30.00,
running: 0
}];
function absoluteFunc(year, month, day, absolute) {
debug('checking absolute...');
for (var i = 0; i < absolute.length; i++) {
if (day == absolute[i].day) {
debug('* absolute = ' + absolute[i].note);
}
}
}
function relativeFunc(year, month, day, relative) {
debug('checking relative...');
for (var i = 0; i < relative.length; i++) {
relative[i].running++;
if (relative[i].running == relative[i].frequency) {
debug('* relative = ' + relative[i].note);
relative[i].running = 0;
}
}
}
function generate(absoluteFunc, relativeFunc) {
debug('start = ' + start.month + '-' + start.day + '-' + start.year + ', end = ' + end.month + '-' + end.day + '-' + end.year);
for (var year = start.year; year <= end.year; year++) {
debug('year = ' + year);
for (var month = 1; month <= 12; month++) {
if (start.year == year && month < start.month) {
continue;
}
if (end.year == year && month > end.month) {
break;
}
debug('month = ' + month);
days = new Date(year, month, 0).getDate();
for (var day = 1; day <= days; day++) {
debug('day = ' + day);
absoluteFunc(year, month, day, absolute);
relativeFunc(year, month, day, relative);
}
}
}
}
generate(absoluteFunc, relativeFunc);