Android個人所得稅計算機

來源:互聯網
上載者:User

本人所做的android個人所得稅計算機程式。

先貼:

 

1.layout布局主要使用TableLayout,代碼如下

<?xml version="1.0" encoding="utf-8"?><br /><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"<br /> android:orientation="vertical"<br /> android:layout_width="fill_parent"<br /> android:layout_height="fill_parent"<br /> ><br /><TableLayout<br />android:id="@+id/tlItems"<br />android:layout_width="fill_parent"<br /> android:layout_height="wrap_content"<br />><br /><TableRow><br /><TextView android:text="稅前月入:"/><br /><EditText android:id="@+id/etShuiqianNum"<br />android:layout_width="wrap_content"<br />android:layout_height="wrap_content"<br />android:inputType="numberDecimal"<br />android:layout_weight="1"<br />android:hint="請輸入"<br />android:textColor="#FF00FF"<br />android:text=""/><br /><TextView android:text="稅後月入 :" android:textColor="#00FF00"/><br /><EditText android:id="@+id/etShuihouNum"<br />android:layout_width="wrap_content"<br />android:layout_height="wrap_content"<br />android:inputType="numberDecimal"<br />android:layout_weight="1"<br />android:textColor="#0000FF"<br />android:text=""/><br /></TableRow><br /><TableRow><br /><TextView android:text="繳納個稅:"/><br /><EditText android:id="@+id/etGeshui"<br />android:layout_width="wrap_content"<br />android:layout_height="wrap_content"<br />android:cursorVisible="false"<br />android:editable="false"<br />android:layout_weight="1"<br />android:textColor="#FF0000"<br />android:text="0.00"/><br /><Button android:id="@+id/btnJisuan"<br />android:layout_width="wrap_content"<br />android:layout_height="wrap_content"<br />android:layout_span="2"<br />android:layout_weight="1"<br />android:textStyle="bold"<br />android:textSize="18sp"<br />android:textColor="#0000FF"<br />android:text="計 算"/><br /></TableRow><br /></TableLayout></p><p><ScrollView<br />xmlns:android="http://schemas.android.com/apk/res/android"<br />android:layout_width="fill_parent"<br />android:layout_height="wrap_content"<br />><br /><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"<br /> android:orientation="vertical"<br /> android:layout_width="fill_parent"<br /> android:layout_height="wrap_content"<br /> ><br /> <TextView<br /> android:layout_width="fill_parent"<br /> android:layout_height="wrap_content"<br /> android:textSize="16sp"<br /> android:textStyle="bold"<br /> android:textColor="#FF0000"<br /> android:text="個人繳納社保與公積金繳費比例(可調整)"<br /> /><br /><TableLayout<br />android:id="@+id/tlItems"<br />android:layout_width="fill_parent"<br /> android:layout_height="wrap_content"<br />><br /><TableRow><br /><TextView android:text="養老"/><br /><EditText android:id="@+id/etYanglao"<br />android:layout_width="80dp"<br />android:layout_height="wrap_content"<br />android:inputType="numberDecimal"<br />android:text="8"/><br /><TextView android:text="%"/><br /><TextView android:id="@+id/tvYanglaoNum"<br />android:layout_width="wrap_content"<br /> android:layout_height="wrap_content"<br /> android:layout_marginLeft="10dip"<br />android:textColor="#00FFFF"<br />android:text="0.00"/><br /></TableRow><br /><TableRow><br /><TextView android:text="醫學"/><br /><EditText android:id="@+id/etYiliao"<br />android:layout_width="80dp"<br />android:layout_height="wrap_content"<br />android:inputType="numberDecimal"<br />android:text="2"/><br /><TextView android:text="% + 3元 "/><br /><TextView android:id="@+id/tvYiliaoNum"<br />android:layout_width="wrap_content"<br /> android:layout_height="wrap_content"<br /> android:layout_marginLeft="10dip"<br />android:textColor="#00FFFF"<br />android:text="0.00"/><br /></TableRow><br /><TableRow><br /><TextView android:text="失業"/><br /><EditText android:id="@+id/etShiye"<br />android:layout_width="80dp"<br />android:layout_height="wrap_content"<br />android:inputType="numberDecimal"<br />android:text="0.2"/><br /><TextView android:text="%"/><br /><TextView android:id="@+id/tvShiyeNum"<br />android:layout_width="wrap_content"<br /> android:layout_height="wrap_content"<br /> android:layout_marginLeft="10dip"<br />android:textColor="#00FFFF"<br />android:text="0.00"/><br /></TableRow><br /><TableRow><br /><TextView android:text="房屋公積金 "/><br /><EditText android:id="@+id/etZhufang"<br />android:layout_width="80dp"<br />android:layout_height="wrap_content"<br />android:inputType="numberDecimal"<br />android:text="12"/><br /><TextView android:text="%"/><br /><TextView android:id="@+id/tvZhufangNum"<br />android:layout_width="wrap_content"<br /> android:layout_height="wrap_content"<br /> android:layout_marginLeft="10dip"<br />android:textColor="#00FFFF"<br />android:text="0.00"/><br /></TableRow><br /></TableLayout><br /><TextView<br />android:layout_width="wrap_content"<br /> android:layout_height="wrap_content"<br /> android:textSize="16sp"<br /> android:textStyle="bold"<br /> android:textColor="#FF0000"<br />android:text="繳費基數(可調整)"/><br /><TableLayout<br />android:id="@+id/tlZhengshuiJishu"<br />android:layout_width="fill_parent"<br /> android:layout_height="wrap_content"<br />><br /><TableRow><br /><TextView android:text="社保:"/><br /><EditText android:id="@+id/etShebaoBase"<br />android:layout_width="wrap_content"<br />android:layout_height="wrap_content"<br />android:inputType="numberDecimal"<br />android:layout_weight="1"<br />android:text=""/><br /><TextView android:text="醫學:"/><br /><EditText android:id="@+id/etYiliaoBase"<br />android:layout_width="wrap_content"<br />android:layout_height="wrap_content"<br />android:inputType="numberDecimal"<br />android:layout_weight="1"<br />android:text=""/><br /></TableRow><br /><TableRow><br /><TextView android:text="房屋公積金:"/><br /><EditText android:id="@+id/etZhufangBase"<br />android:layout_width="wrap_content"<br />android:layout_height="wrap_content"<br />android:inputType="numberDecimal"<br />android:layout_weight="1"<br />android:text=""/><br /><TextView android:text="個稅起征點 :"/><br /><EditText android:id="@+id/etQizhengdianBase"<br />android:layout_width="wrap_content"<br />android:layout_height="wrap_content"<br />android:inputType="numberDecimal"<br />android:layout_weight="1"<br />android:text="2000"/><br /></TableRow><br /></TableLayout><br /></LinearLayout><br /></ScrollView><br /></LinearLayout><br />

2.java實現,計算個稅的方法很多,網上都有介紹,目前是按照9級稅率的演算法實現的,代碼如下:

/**<br /> * 個人所得稅計算機<br /> * @author ameyume<br /> *<br /> */<br />public class PersonalTax extends Activity {<br />private static final String LOG_TAG = "PersonalTax";</p><p>private TextView tvYanglaoNum, tvYiliaoNum, tvShiyeNum, tvZhufangNum;<br />private EditText etShuiqianNum, etShuihouNum, etGeshui;<br />private EditText etYanglao, etYiliao, etShiye, etZhufang;<br />private EditText etShebaoBase, etYiliaoBase, etZhufangBase, etQizhengdianBase;<br />private Button btnJisuan;</p><p> /** Called when the activity is first created. */<br /> @Override<br /> public void onCreate(Bundle savedInstanceState) {<br /> super.onCreate(savedInstanceState);<br /> setContentView(R.layout.main);</p><p>// setTitle("個稅通——個人所得稅計算機");</p><p> // 社保與房屋公積金繳費金額<br /> tvYanglaoNum = (TextView)findViewById(R.id.tvYanglaoNum);<br /> tvYiliaoNum = (TextView)findViewById(R.id.tvYiliaoNum);<br /> tvShiyeNum = (TextView)findViewById(R.id.tvShiyeNum);<br /> tvZhufangNum = (TextView)findViewById(R.id.tvZhufangNum);</p><p> // 稅前稅後以及個人所得稅金額<br /> etShuiqianNum = (EditText)findViewById(R.id.etShuiqianNum);<br /> etShuiqianNum.addTextChangedListener(new TextWatcher() {</p><p>@Override<br />public void afterTextChanged(Editable arg0) {<br />// TODO Auto-generated method stub<br />// 把輸入內容同步顯示在社保基數,醫學基數,房屋公積金基數中<br />etShebaoBase.setText(etShuiqianNum.getText());<br />etYiliaoBase.setText(etShuiqianNum.getText());<br />etZhufangBase.setText(etShuiqianNum.getText());<br />}</p><p>@Override<br />public void beforeTextChanged(CharSequence s, int start, int count,<br />int after) {<br />// TODO Auto-generated method stub</p><p>}</p><p>@Override<br />public void onTextChanged(CharSequence s, int start, int before,<br />int count) {<br />// TODO Auto-generated method stub</p><p>}</p><p> });</p><p> etShuihouNum = (EditText)findViewById(R.id.etShuihouNum);<br /> etGeshui = (EditText)findViewById(R.id.etGeshui);</p><p> // 社保與房屋公積金繳費比例<br /> etYanglao = (EditText)findViewById(R.id.etYanglao);<br /> etYiliao = (EditText)findViewById(R.id.etYiliao);<br /> etShiye = (EditText)findViewById(R.id.etShiye);<br /> etZhufang = (EditText)findViewById(R.id.etZhufang);</p><p> // 社保與房屋公積金繳費基數<br /> etShebaoBase = (EditText)findViewById(R.id.etShebaoBase);<br /> etYiliaoBase = (EditText)findViewById(R.id.etYiliaoBase);<br /> etZhufangBase = (EditText)findViewById(R.id.etZhufangBase);<br /> etQizhengdianBase = (EditText)findViewById(R.id.etQizhengdianBase);</p><p> // 計算<br /> btnJisuan = (Button)findViewById(R.id.btnJisuan);<br /> btnJisuan.setOnClickListener(new OnClickListener() {<br />@Override<br />public void onClick(View v) {<br />// TODO Auto-generated method stub<br />// 計算個稅<br />String strShuiqian = etShuiqianNum.getText().toString();<br />if (strShuiqian.length() <= 0) {<br />Toast.makeText(getApplicationContext(), "請輸入稅前收入!", Toast.LENGTH_SHORT).show();<br />etShuiqianNum.requestFocus();<br />return;<br />}</p><p>String strYanglao = etYanglao.getText().toString();<br />if (strYanglao.length() <= 0) {<br />Toast.makeText(getApplicationContext(), "請輸入養老繳費比例!", Toast.LENGTH_SHORT).show();<br />etYanglao.requestFocus();<br />return;<br />}<br />String strYiliao = etYiliao.getText().toString();<br />if (strYiliao.length() <= 0) {<br />Toast.makeText(getApplicationContext(), "請輸入醫學繳費比例!", Toast.LENGTH_SHORT).show();<br />etYiliao.requestFocus();<br />return;<br />}<br />String strShiye = etShiye.getText().toString().trim();<br />if (strShiye.length() <= 0) {<br />Toast.makeText(getApplicationContext(), "請輸入失業繳費比例!", Toast.LENGTH_SHORT).show();<br />etShiye.requestFocus();<br />return;<br />}<br />String strZhufang = etZhufang.getText().toString();<br />if (strZhufang.length() <= 0) {<br />Toast.makeText(getApplicationContext(), "請輸入房屋公積金繳費比例!", Toast.LENGTH_SHORT).show();<br />etZhufang.requestFocus();<br />return;<br />}<br />String strShebaoBase = etShebaoBase.getText().toString();<br />if (strShebaoBase.length() <= 0) {<br />Toast.makeText(getApplicationContext(), "請輸入社保繳費基數!", Toast.LENGTH_SHORT).show();<br />etShebaoBase.requestFocus();<br />return;<br />}<br />String strYiliaoBase = etYiliaoBase.getText().toString();<br />if (strYiliaoBase.length() <= 0) {<br />Toast.makeText(getApplicationContext(), "請輸入醫學繳費基數!", Toast.LENGTH_SHORT).show();<br />etYiliaoBase.requestFocus();<br />return;<br />}<br />String strZhufangBase = etZhufangBase.getText().toString();<br />if (strZhufangBase.length() <= 0) {<br />Toast.makeText(getApplicationContext(), "請輸入房屋公積金繳費基數!", Toast.LENGTH_SHORT).show();<br />etZhufangBase.requestFocus();<br />return;<br />}<br />String strQizhengdianBase = etQizhengdianBase.getText().toString();<br />if (strQizhengdianBase.length() <= 0) {<br />Toast.makeText(getApplicationContext(), "請輸入個人所得稅起征點!", Toast.LENGTH_SHORT).show();<br />etQizhengdianBase.requestFocus();<br />return;<br />} </p><p>try{<br />float shuiqianNum = Float.parseFloat(strShuiqian);<br />float yanglaoNum = Float.parseFloat(strYanglao);<br />float yiliaoNum = Float.parseFloat(strYiliao);<br />float shiyeNum = Float.parseFloat(strShiye);<br />float zhufangNum = Float.parseFloat(strZhufang);<br />float shebaoBase = Float.parseFloat(strShebaoBase);<br />float yiliaoBase = Float.parseFloat(strYiliaoBase);<br />float zhufangBase = Float.parseFloat(strZhufangBase);<br />float qizhengdianBase = Float.parseFloat(strQizhengdianBase);</p><p>// 養老繳納金額<br />float yanglao = shebaoBase * yanglaoNum * 0.01f;<br />tvYanglaoNum.setText(String.valueOf(yanglao));</p><p>// 醫學繳納金額<br />float yiliao = yiliaoBase * yiliaoNum * 0.01f + 3;<br />tvYiliaoNum.setText(String.valueOf(yiliao));</p><p>// 失業繳納金額<br />float shiye = shebaoBase * shiyeNum * 0.01f;<br />tvShiyeNum.setText(String.valueOf(shiye));</p><p>// 房屋公積金繳納金額<br />float zhufang = zhufangBase * zhufangNum * 0.01f;<br />tvZhufangNum.setText(String.valueOf(zhufang));</p><p>// 計算個稅<br />float shuihou = shuiqianNum - yanglao - yiliao - shiye - zhufang;<br />float geshui = 0f;<br />if (shuihou > qizhengdianBase) {<br />// 需要交稅<br />float jiaoshuiBase = shuihou - qizhengdianBase;<br />if (jiaoshuiBase <= 500) {<br />geshui = jiaoshuiBase * 0.05f;<br />} else if (jiaoshuiBase > 500 && jiaoshuiBase <= 2000) {<br />geshui = jiaoshuiBase * 0.1f - 25;<br />} else if (jiaoshuiBase > 2000 && jiaoshuiBase <= 5000) {<br />geshui = jiaoshuiBase * 0.15f - 125;<br />} else if (jiaoshuiBase > 5000 && jiaoshuiBase <= 20000) {<br />geshui = jiaoshuiBase * 0.2f - 375;<br />} else if (jiaoshuiBase > 20000 && jiaoshuiBase <= 40000) {<br />geshui = jiaoshuiBase * 0.25f - 1375;<br />} else if (jiaoshuiBase > 40000 && jiaoshuiBase <= 60000) {<br />geshui = jiaoshuiBase * 0.3f - 3375;<br />} else if (jiaoshuiBase > 60000 && jiaoshuiBase <= 80000) {<br />geshui = jiaoshuiBase * 0.35f - 6375;<br />} else if (jiaoshuiBase > 80000 && jiaoshuiBase <= 100000) {<br />geshui = jiaoshuiBase * 0.4f - 10375;<br />} else if (jiaoshuiBase > 100000) {<br />geshui = jiaoshuiBase * 0.45f - 15375;<br />}<br />}<br />shuihou -= geshui;<br />if (shuihou < 0f) {<br />Toast.makeText(getApplicationContext(), "稅後收入為負數,請檢查輸入是否正確!", Toast.LENGTH_SHORT).show();<br />etShuihouNum.setTextColor(Color.RED);<br />} else {<br />etShuihouNum.setTextColor(Color.BLUE);<br />}<br />etShuihouNum.setText(String.valueOf(shuihou));<br />etGeshui.setText(String.valueOf(geshui));<br />} catch(Exception e) {<br />e.printStackTrace();<br />Log.e(LOG_TAG, "parseFloat ERROR!!!");<br />}<br />}<br /> });<br /> }<br />}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.