展会信息港展会大全

Android个人所得税计算器
来源:互联网   发布日期:2016-01-14 12:21:15   浏览:2934次  

导读:本人所做的Android个人所得税计算器程序。先贴效果图:1、layout布局主要使用TableLayout,代码如下:?xmlversion=1.0encoding=utf-8?LinearLayoutxmlns:android=http://schemas.android.com/apk/res/an......

本人所做的Android个人所得税计算器程序。

先贴效果图:

1、layout布局主要使用TableLayout,代码如下:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

<TableLayout

android:id="@+id/tlItems"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

>

<TableRow>

<TextView android:text="税前月入:"/>

<EditText android:id="@+id/etShuiqianNum"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:inputType="numberDecimal"

android:layout_weight="1"

android:hint="请输入"

android:textColor="#FF00FF"

android:text=""/>

<TextView android:text="税后月入 :" android:textColor="#00FF00"/>

<EditText android:id="@+id/etShuihouNum"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:inputType="numberDecimal"

android:layout_weight="1"

android:textColor="#0000FF"

android:text=""/>

</TableRow>

<TableRow>

<TextView android:text="缴纳个税:"/>

<EditText android:id="@+id/etGeshui"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:cursorVisible="false"

android:editable="false"

android:layout_weight="1"

android:textColor="#FF0000"

android:text="0.00"/>

<Button android:id="@+id/btnJisuan"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_span="2"

android:layout_weight="1"

android:textStyle="bold"

android:textSize="18sp"

android:textColor="#0000FF"

android:text="计算"/>

</TableRow>

</TableLayout>

<ScrollView

xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

>

<TextView

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:textSize="16sp"

android:textStyle="bold"

android:textColor="#FF0000"

android:text="个人缴纳社保与公积金缴费比例(可调整)"

/>

<TableLayout

android:id="@+id/tlItems"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

>

<TableRow>

<TextView android:text="养老"/>

<EditText android:id="@+id/etYanglao"

android:layout_width="80dp"

android:layout_height="wrap_content"

android:inputType="numberDecimal"

android:text="8"/>

<TextView android:text="%"/>

<TextView android:id="@+id/tvYanglaoNum"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginLeft="10dip"

android:textColor="#00FFFF"

android:text="0.00"/>

</TableRow>

<TableRow>

<TextView android:text="医疗"/>

<EditText android:id="@+id/etYiliao"

android:layout_width="80dp"

android:layout_height="wrap_content"

android:inputType="numberDecimal"

android:text="2"/>

<TextView android:text="% + 3元 "/>

<TextView android:id="@+id/tvYiliaoNum"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginLeft="10dip"

android:textColor="#00FFFF"

android:text="0.00"/>

</TableRow>

<TableRow>

<TextView android:text="失业"/>

<EditText android:id="@+id/etShiye"

android:layout_width="80dp"

android:layout_height="wrap_content"

android:inputType="numberDecimal"

android:text="0.2"/>

<TextView android:text="%"/>

<TextView android:id="@+id/tvShiyeNum"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginLeft="10dip"

android:textColor="#00FFFF"

android:text="0.00"/>

</TableRow>

<TableRow>

<TextView android:text="住房公积金 "/>

<EditText android:id="@+id/etZhufang"

android:layout_width="80dp"

android:layout_height="wrap_content"

android:inputType="numberDecimal"

android:text="12"/>

<TextView android:text="%"/>

<TextView android:id="@+id/tvZhufangNum"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginLeft="10dip"

android:textColor="#00FFFF"

android:text="0.00"/>

</TableRow>

</TableLayout>

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textSize="16sp"

android:textStyle="bold"

android:textColor="#FF0000"

android:text="缴费基数(可调整)"/>

<TableLayout

android:id="@+id/tlZhengshuiJishu"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

>

<TableRow>

<TextView android:text="社保:"/>

<EditText android:id="@+id/etShebaoBase"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:inputType="numberDecimal"

android:layout_weight="1"

android:text=""/>

<TextView android:text="医疗:"/>

<EditText android:id="@+id/etYiliaoBase"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:inputType="numberDecimal"

android:layout_weight="1"

android:text=""/>

</TableRow>

<TableRow>

<TextView android:text="住房公积金:"/>

<EditText android:id="@+id/etZhufangBase"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:inputType="numberDecimal"

android:layout_weight="1"

android:text=""/>

<TextView android:text="个税起征点 :"/>

<EditText android:id="@+id/etQizhengdianBase"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:inputType="numberDecimal"

android:layout_weight="1"

android:text="2000"/>

</TableRow>

</TableLayout>

</LinearLayout>

</ScrollView>

</LinearLayout>

2、java实现,计算个税的方法很多,网上都有介绍,目前是按照9级税率的算法实现的,代码如下:

public class PersonalTax extends Activity {

private static final String LOG_TAG = "PersonalTax";

private TextView tvYanglaoNum, tvYiliaoNum, tvShiyeNum, tvZhufangNum;

private EditText etShuiqianNum, etShuihouNum, etGeshui;

private EditText etYanglao, etYiliao, etShiye, etZhufang;

private EditText etShebaoBase, etYiliaoBase, etZhufangBase,

etQizhengdianBase;

private Button btnJisuan;

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

// setTitle("个税通个人 所得税计算器");

// 社保与住房公积金缴费金额

tvYanglaoNum = (TextView) findViewById(R.id.tvYanglaoNum);

tvYiliaoNum = (TextView) findViewById(R.id.tvYiliaoNum);

tvShiyeNum = (TextView) findViewById(R.id.tvShiyeNum);

tvZhufangNum = (TextView) findViewById(R.id.tvZhufangNum);

// 税前税后以及个人 所得税金额

etShuiqianNum = (EditText) findViewById(R.id.etShuiqianNum);

etShuiqianNum.addTextChangedListener(new TextWatcher() {

@Override

public void afterTextChanged(Editable arg0) {

// TODO Auto-generated method stub

// 把输入内容同步显示在社保基数,医疗基数,住房公积金基数中

etShebaoBase.setText(etShuiqianNum.getText());

etYiliaoBase.setText(etShuiqianNum.getText());

etZhufangBase.setText(etShuiqianNum.getText());

}

@Override

public void beforeTextChanged(CharSequence s, int start, intcount,

int after) {

// TODO Auto-generated method stub

}

@Override

public void onTextChanged(CharSequence s, int start, int before,

int count) {

// TODO Auto-generated method stub

}

});

etShuihouNum = (EditText) findViewById(R.id.etShuihouNum);

etGeshui = (EditText) findViewById(R.id.etGeshui);

// 社保与住房公积金缴费比例

etYanglao = (EditText) findViewById(R.id.etYanglao);

etYiliao = (EditText) findViewById(R.id.etYiliao);

etShiye = (EditText) findViewById(R.id.etShiye);

etZhufang = (EditText) findViewById(R.id.etZhufang);

// 社保与住房公积金缴费基数

etShebaoBase = (EditText) findViewById(R.id.etShebaoBase);

etYiliaoBase = (EditText) findViewById(R.id.etYiliaoBase);

etZhufangBase = (EditText) findViewById(R.id.etZhufangBase);

etQizhengdianBase = (EditText) findViewById(R.id.etQizhengdianBase);

// 计算

btnJisuan = (Button) findViewById(R.id.btnJisuan);

btnJisuan.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

// 计算个税

String strShuiqian = etShuiqianNum.getText().toString();

if (strShuiqian.length() <= 0) {

Toast.makeText(getApplicationContext(), "请输入税前收入!",

Toast.LENGTH_SHORT).show();

etShuiqianNum.requestFocus();

return;

}

String strYanglao = etYanglao.getText().toString();

if (strYanglao.length() <= 0) {

Toast.makeText(getApplicationContext(), "请输入养老缴费比例!",

Toast.LENGTH_SHORT).show();

etYanglao.requestFocus();

return;

}

String strYiliao = etYiliao.getText().toString();

if (strYiliao.length() <= 0) {

Toast.makeText(getApplicationContext(), "请输入医疗缴费比例!",

Toast.LENGTH_SHORT).show();

etYiliao.requestFocus();

return;

}

String strShiye = etShiye.getText().toString().trim();

if (strShiye.length() <= 0) {

Toast.makeText(getApplicationContext(), "请输入失业缴费比例!",

Toast.LENGTH_SHORT).show();

etShiye.requestFocus();

return;

}

String strZhufang = etZhufang.getText().toString();

if (strZhufang.length() <= 0) {

Toast.makeText(getApplicationContext(), "请输入住房公积金缴费比例!",

Toast.LENGTH_SHORT).show();

etZhufang.requestFocus();

return;

}

String strShebaoBase = etShebaoBase.getText().toString();

if (strShebaoBase.length() <= 0) {

Toast.makeText(getApplicationContext(), "请输入社保缴费基数!",

Toast.LENGTH_SHORT).show();

etShebaoBase.requestFocus();

return;

}

String strYiliaoBase = etYiliaoBase.getText().toString();

if (strYiliaoBase.length() <= 0) {

Toast.makeText(getApplicationContext(), "请输入医疗缴费基数!",

Toast.LENGTH_SHORT).show();

etYiliaoBase.requestFocus();

return;

}

String strZhufangBase = etZhufangBase.getText().toString();

if (strZhufangBase.length() <= 0) {

Toast.makeText(getApplicationContext(), "请输入住房公积金缴费基数!",

Toast.LENGTH_SHORT).show();

etZhufangBase.requestFocus();

return;

}

String strQizhengdianBase = etQizhengdianBase.getText()

.toString();

if (strQizhengdianBase.length() <= 0) {

Toast.makeText(getApplicationContext(), "请输入个人 所得税起征点!",

Toast.LENGTH_SHORT).show();

etQizhengdianBase.requestFocus();

return;

}

try {

float shuiqianNum = Float.parseFloat(strShuiqian);

float yanglaoNum = Float.parseFloat(strYanglao);

float yiliaoNum = Float.parseFloat(strYiliao);

float shiyeNum = Float.parseFloat(strShiye);

float zhufangNum = Float.parseFloat(strZhufang);

float shebaoBase = Float.parseFloat(strShebaoBase);

float yiliaoBase = Float.parseFloat(strYiliaoBase);

float zhufangBase = Float.parseFloat(strZhufangBase);

float qizhengdianBase = Float

.parseFloat(strQizhengdianBase);

// 养老缴纳金额

float yanglao = shebaoBase * yanglaoNum * 0.01f;

tvYanglaoNum.setText(String.valueOf(yanglao));

// 医疗缴纳金额

float yiliao = yiliaoBase * yiliaoNum * 0.01f + 3;

tvYiliaoNum.setText(String.valueOf(yiliao));

// 失业缴纳金额

float shiye = shebaoBase * shiyeNum * 0.01f;

tvShiyeNum.setText(String.valueOf(shiye));

// 住房公积金缴纳金额

float zhufang = zhufangBase * zhufangNum * 0.01f;

tvZhufangNum.setText(String.valueOf(zhufang));

// 计算个税

float shuihou = shuiqianNum - yanglao - yiliao - shiye

- zhufang;

float geshui = 0f;

if (shuihou > qizhengdianBase) {

// 需要交税

float jiaoshuiBase = shuihou - qizhengdianBase;

if (jiaoshuiBase <= 500) {

geshui = jiaoshuiBase * 0.05f;

} else if (jiaoshuiBase > 500 && jiaoshuiBase <=2000) {

geshui = jiaoshuiBase * 0.1f - 25;

} else if (jiaoshuiBase > 2000 && jiaoshuiBase <=5000) {

geshui = jiaoshuiBase * 0.15f - 125;

} else if (jiaoshuiBase > 5000 && jiaoshuiBase <=20000) {

geshui = jiaoshuiBase * 0.2f - 375;

} else if (jiaoshuiBase > 20000

&& jiaoshuiBase <= 40000) {

geshui = jiaoshuiBase * 0.25f - 1375;

} else if (jiaoshuiBase > 40000

&& jiaoshuiBase <= 60000) {

geshui = jiaoshuiBase * 0.3f - 3375;

} else if (jiaoshuiBase > 60000

&& jiaoshuiBase <= 80000) {

geshui = jiaoshuiBase * 0.35f - 6375;

} else if (jiaoshuiBase > 80000

&& jiaoshuiBase <= 100000) {

geshui = jiaoshuiBase * 0.4f - 10375;

} else if (jiaoshuiBase > 100000) {

geshui = jiaoshuiBase * 0.45f - 15375;

}

}

shuihou -= geshui;

if (shuihou < 0f) {

Toast.makeText(getApplicationContext(),

"税后收入为负数,请检查输入是否正确!", Toast.LENGTH_SHORT)

.show();

etShuihouNum.setTextColor(Color.RED);

} else {

etShuihouNum.setTextColor(Color.BLUE);

}

etShuihouNum.setText(String.valueOf(shuihou));

etGeshui.setText(String.valueOf(geshui));

} catch (Exception e) {

e.printStackTrace();

Log.e(LOG_TAG, "parseFloat ERROR!!!");

}

}

});

}

}

赞助本站

人工智能实验室

相关热词: 个人所得税 计算器

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港