Skip to content

Instantly share code, notes, and snippets.

@jmurowaniecki
Created May 20, 2021 20:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jmurowaniecki/a2263fef7c53555cf7a83cf27e3b1782 to your computer and use it in GitHub Desktop.
Save jmurowaniecki/a2263fef7c53555cf7a83cf27e3b1782 to your computer and use it in GitHub Desktop.
Um script de exemplo para ajudar a calcular experiência e custos afim de chegar em um salário razoável.
const CalculaSalário = (function (Referencial) {
let ReferenciaGlobal = 0;
Object.prototype.toString = function () {
let VALORES = 0;
for (let xp in this) {
if (!!parseInt(this[xp])) {
VALORES += this[xp];
}
}
return VALORES;
};
Object.prototype.toInt = function () {
return parseInt(`${this}`, 10);
}
this.Experiência = {};
this.Gastos = {};
this.Gastos.adicionar = (descrição, valor) => {
this.Gastos[descrição] = valor;
return this.Gastos;
};
this.Experiência.adicionar = (descrição, anos, éCumulativo) => {
this.Experiência[descrição] = 8 * 4 * 12 * anos;
if (éCumulativo) {
ReferenciaGlobal += this.Experiência[descrição];
}
return this.Experiência;
};
this.Salario = {
Justo: (base) => {
let gastos = this.Gastos.toInt();
return (ReferenciaGlobal + this.Experiência[base] + (gastos + (gastos / 3))).toFixed(2);
}
}
return this;
}());
const John = CalculaSalário;
John
.Gastos
.adicionar('Moradia+IPTU', 2000)
.adicionar('Cesta_Básica', 800)
.adicionar('Água, Luz, Gás', 300)
.adicionar('Internet', 150)
.adicionar('Gasolina', 500)
.adicionar('Netflix, Amazon, Disney, Spotify', 100)
.adicionar('IPVA+Seguro', 100)
.adicionar('Plano saúde', 300 * 2)
.adicionar('Gastos familiares previstos', 500)
.adicionar('Diversão+Gastos ocasionais', 200);
[
['php', 20],
['js', 12],
['python', 10],
['c#', 6],
['vb', 6]
].forEach(job => {
let [descrição, tempo] = job;
John
.Experiência
.adicionar(descrição, tempo);
console.log(`…Para o cargo de ${descrição.toUpperCase().padEnd(6, ' ')} seria de R$${John.Salario.Justo(descrição).padStart(9, ' ')}`);
});
John
.Experiência
.adicionar('sql', 22, 1)
.adicionar('dev', 20, 1)
.adicionar('universidade', 3, 1);
console.log(`\nPela experiência geral R$ ${John.Experiência}, pela necessidade R$ ${John.Gastos}.`);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment