Published Date : 2021年4月4日9:57

パート18: 給与所得者の所得税と住民税を計算するAndroidアプリ
Part 18: Android App Calculates Income and Resident Taxes for Salaried Workers


This blog has an English translation


ニコニコ動画にアップした動画のまとめ記事です。

This is a summary blog post about a video I uploaded to NicoNico.

細かい部分は動画を参考にしてください。

Please refer to the video for details.


目次

Table of Contents




① 動画の説明
① Video Description



警告:

今回説明する給与所得者の所得税及び住民税を計算するツールは、あくまで簡易的なお遊び用のツールです。

正確な数値、計算方法は各自で調べて下さい。

このツールは大雑把に大体の見積りを計算して楽しむ為のツールです。

決して従業員の年末調整や個人の確定申告等に使用しないでください。

さらに、税金の計算方法は変更される場合があり、控除についても同様です。

また、控除や税金の計算方法が間違っている可能性もありますので、

あまり信用せずに、各自で調べてから実験してみてください。

このツールを使って何かしらの損害が発生したとしても、私は一切の責任を負いません。

Warning:

​The tool I'm going to show you for calculating income and residence taxes for salaried workers is just a simple tool for playing.

​Please check the exact number and calculation method by yourself.

​This tool is used to calculate rough estimates and enjoy them.

​Do not use for year-end adjustment of employees or for individual tax return.

In addition, the method of calculating taxes and deductions may change.

Also, there is a possibility that the deduction and tax calculation methods are incorrect.

Don't trust it too much, and test it yourself.

​I will not be liable for any damage caused by using this tool.

前回の続きです。

Continued from last time.


Responsive image

住民税と住民税控除額及び課税額の計算を行うメソッドを作成します。

Create methods to calculate resident tax and resident tax deduction and taxable resident tax.


Responsive image

全ての控除額を集めて、全体の住民税控除額と住民税課税額を計算します。

Collect all deductions and calculate the total resident deductions and taxable resident taxes.

public Map<String, String> calcResidentTax() {
    setResidentTaxesAndDeductions();
    
    ---------------------------------------

}

各クラスからゲッターを使用して値を足し合わせていきます。

Add up the values using getters from each class.

public void setResidentTaxesAndDeductions() {
    residentTaxDeduction = 0;
    taxableIncomeForResidentTax = super.getProvisionalTaxableIncome() - super.getBasicResidentDeduction();

    residentTaxDeduction += super.getBasicResidentDeduction();

    ----------------------------------------------------------------------------------------------------
            

課税額がマイナスになってしまったら値をゼロにします。

If the taxable resident tax amount becomes negative, the value is set to zero.

    ----------------------------------------------------------------------------------------------------
    
    if (taxableIncomeForResidentTax < 0) {
            taxableIncomeForResidentTax = 0;
        }
    }
}

給与収入を取得します。

Get salary revenue.


Responsive image

給与所得を取得します。

Retrieve salary income.


Responsive image

一時所得額を取得します。

Gets the amount of temporary income.


Responsive image

住民税が非課税になるかどうかを判別する為に、障害者控除と寡婦寡夫控除を取得します。

In order to determine whether the resident tax is exempted, you need to retrieve the disability deduction and the widow and widower deduction.

そして住民税の課税額を計算します。

And calculate the amount of residence tax.

都民税を計算します。

Calculate the tokyo resident tax.

区民税を計算します。

Calculate the tokyo ward tax.

人的控除額を計算します。

Calculate personal deductions.

住民税の課税額毎に金額を変えます。

The amount changes according to the amount of taxable residence tax.

住民税が非課税になるかどうかを計算します。

Calculate whether the resident tax is exempted.

住民税と月割の住民税を計算します。

Calculate the resident tax and the monthly resident tax.

詳しい計算方法は国税庁のサイトを参考にしてください。

Please refer to the website of the National Tax Agency for the detailed calculation method.

計算された結果をMap型の変数に格納してメソッドの返り値とします。

Store the computed result in a variable of type Map as the return value of the method.

住民税等を表示するTextViewに計算結果のテキストをセットします。

Set the text of the calculation result to the TextView that displays resident tax, etc.

必要なTextViewをインスタンス化していきます。

Instantiate the required TextView

アプリの動作を確かめてみましょう。

Let's check how the application works.

最後に手取り年収を計算するクラスファイルを作成しましょう。

Finally, let's create a class file that calculates take-home pay.

TaxCalcクラスに直接手取り年収を計算するメソッドを書き込みます。

Write a method to calculate take-home pay directly in the TaxCalc class.


Responsive image

計算された結果をMap型の変数に格納してメソッドの返り値とします。

Store the computed result in a variable of type Map as the return value of the method.

手取り年収等を表示するTextViewに計算結果のテキストをセットします。

Set the text of the calculation result to the TextView that displays take-home pay, etc.

必要なTextViewをインスタンス化していきます。

Instantiate the required TextView.

アプリの動作を確かめてみましょう。

Let's check how the application works.

クリアボタンが押された時の処理の内容を完成させましょう。

Let's complete the code for the processing when the clear button is clicked.

全てのレイアウトのインスタンスをクリアファンクションの引数に渡します。

Pass all layout instances as arguments to the clear function.

最後にtaxCalcインスタンスを初期化します。

Finally, initialize the taxCalc instance.

public void clear(View view) {
    clearfunc(inputSalaryIncomeLayout);
    clearfunc(inputSocialInsuranceDeductionLayout);
    clearfunc(basicDeductionLayout);
    clearfunc(variousDeductionsLayout);
    clearfunc(dfromResidentAincomeTaxesLayout);
    clearfunc(toTaxationLayout);
    clearfunc(incomeTaxDetailsLayout);
    clearfunc(residentTaxDetailsLayout);
    clearfunc(takeHomePayDetailsLayout);
    taxCalc = new TaxCalc();
}

必要なGridLayoutをインスタンス化していきます。

Instantiate the required GridLayout.

アプリの動作を確かめてみましょう。

Let's check how the application works.

完成したアプリの全体のファイル構成です。

The entire file structure of the completed application.

最終的なアプリの動作を確かめてみましょう。

Let's see how the finished app works.



以上です。お疲れ様です。

That's all. Thank you for your hard work.

各自で創意工夫してもっと良いアプリに仕上げてみてください。アディオス。

Be creative and make the app more user-friendly. Adios.