DEV Community

Shelner
Shelner

Posted on

A class to calculate the amount of money needed to live to dividends using TypeScript and Java

TS

Sample Code

// src/dividendLife.ts
class DividendLife {
    private livingExpenses: number; // Monthly
    private dividendYield: number; // Annual yield

    constructor(livingExpenses: number, dividendYield: number) {
        this.livingExpenses = livingExpenses;
        this.dividendYield = dividendYield;
    }

    calcRequiredAmount(): number {
        // requiredAmount * (dividendYield / 100) / 12 = livingExpenses
        const requiredAmount: number = this.livingExpenses / (this.dividendYield / 100 / 12);
        return requiredAmount;
    }
}

export default DividendLife;
Enter fullscreen mode Exit fullscreen mode
// src/main.ts
import DividendLife from "./dividendLife";

const main = () => {
    const args = process.argv.slice(2);
    console.log({ args });
    const livingExpenses = Number(args[0]);
    const dividendYield = Number(args[1]);
    if (isNaN(livingExpenses) || isNaN(dividendYield)) {
        console.log("Please enter two numeric args");
    }
    const dividendLife = new DividendLife(livingExpenses, dividendYield);
    const requiredAmount =  dividendLife.calcRequiredAmount();
    console.log("The amount needed is " + requiredAmount.toLocaleString());
}

main();
Enter fullscreen mode Exit fullscreen mode

How to run

npm i ts-node typescript
ts-node ./src/main.ts 1700 3
Enter fullscreen mode Exit fullscreen mode

The first argument is the amount needed per mongh.
The second argument is the dividend yield (%).

Java

Example Code

// src/main/java/DividendLife.java
public class DividendLife {
    public static void main(String[] args) {
        float livingExpenses = (float)Integer.parseInt(args[0]);
        float dividendYield = (float)Integer.parseInt(args[1]);

        DividendLife dividendLife = new DividendLife(livingExpenses, dividendYield);
        float requiredAmount = dividendLife.calcRequiredAmount();
        System.out.println(requiredAmount);
    }

    private float livingExpenses;
    private float dividendYield;

    DividendLife(float livingExpenses, float dividendYield) {
        setLivingExpenses(livingExpenses);
        setDividendYield(dividendYield);
    }

    public float calcRequiredAmount() {
        // requiredAmount * (dividendYield / 100) / 12 = livingExpenses
        return this.livingExpenses / (this.dividendYield / 100 / 12);
    }

    public void setLivingExpenses(float livingExpenses) {
        this.livingExpenses = livingExpenses;
    }

    public void setDividendYield(float dividendYield) {
        this.dividendYield = dividendYield;
    }
}
Enter fullscreen mode Exit fullscreen mode

How to run (IntelliJ)

Open the "Edit run configuration".
Image description

Set two number arguments
Image description

run

Top comments (0)