当前位置: 首页 > 编程日记 > 正文

用PHP计算个税,PHP计算个人所得税示例【不使用速算扣除数】

本文实例讲述了PHP计算个人所得税。分享给大家供大家参考,具体如下:

不使用速算扣除数计算个人所得税,PHP自定义函数实现个人所得税计算。使用速算扣除数计算个人所得税过于简单,略过不提。

PHP和JS有相同之处,知道PHP计算个人所得税的方法以后,也可以同理写出JS代码个算个人所得税。不同之处在于,javascript没有foreach()这样的语法结构,不过随着时代的变迁,现代浏览器中JS ECMASCRIPT 5也开始支持forEach()方法了。

/* PHP不使用速算扣除数计算个人所得税

* @author 吴先成

* @param float $salary 含税收入金额

* @param float $deduction 保险等应当扣除的金额 默认值为0

* @param float $threshold 起征金额 默认值为3500

* @return float | false 返回值为应缴税金额 参数错误时返回false

*/

function getPersonalIncomeTax($salary, $deduction=0, $threshold=3500){

if(!is_numeric($salary) || !is_numeric($deduction) || !is_numeric($threshold)){

return false;

}

if($salary <= $threshold){

return 0;

}

$levels = array(1500, 4500, 9000, 35000, 55000, 80000, PHP_INT_MAX);

$rates = array(0.03, 0.1, 0.2, 0.25, 0.3, 0.35, 0.45);

$taxableIncome = $salary - $threshold - $deduction;

$tax = 0;

foreach($levels as $k => $level){

$previousLevel = isSet($levels[$k-1]) ? $levels[$k-1] : 0;

if($taxableIncome <= $level){

$tax += ($taxableIncome - $previousLevel) * $rates[$k];

break;

}

$tax += ($level-$previousLevel) * $rates[$k];

}

$tax = round($tax, 2);

return $tax;

}

/* 示例 */

echo getPersonalIncomeTax(10086.11);

//运行结果:762.22

?>

希望本文所述对大家PHP程序设计有所帮助。

相关文章:

mono+jexus 部署之CompilationException

使用 HelpPage 组件 CompilationException 好不容易在ubuntu上搭建了monojexus&#xff0c;欣喜若狂的部署上发布的网站&#xff0c;急忙打开&#xff0c;成功运行。 但是别高兴的太早&#xff0c;当我打开WebApi帮助页时出现了CompilationException。 解决办法 修改 WebConfig…

MAC 重置MySQL root 密码

MAC 重置MySQL root 密码 重置MySQL root 密码&#xff1a;当忘记密码&#xff0c;或者想要强行重置 MySQL 密码的时候&#xff0c;可以像下面这样&#xff1a; 1.停止 MySQL 服务 12sudo /usr/local/mysql/support-files/mysql.server stop//当停止失败 见下边 如何用mac 活动…

计算机二级vlookup引用怎么操作,VLOOKUP函数怎样引用二个条件

函数 LOOKUP的数组形式是在数组的第一行或第一列中查找指定数值&#xff0c;然后返回最后一行或最后一列中相同位置处的数值。如果需要查找的数值在数组的第一行或第一列&#xff0c;就可以使用函数LOOKUP 的这种形式。当需要指定列或行的位置时&#xff0c;可以使用函数 LOOKU…

android 自定义录像机,android-camera2 - 将自定义捕获请求构建器选项设置为使用Camera2 API捕获图像以使用OpenCV库进行摄像机校准 - 堆栈内存溢出...

我们正在使用Camera2 API捕获N张图像&#xff0c;而未设置任何自定义捕获请求构建器选项。 我们正在使用这些图像通过OpenCV Android库411进行相机校准。然后&#xff0c;我们正在使用OpenCV Android库进行图像失真处理。 角落处的输出图像不清晰&#xff0c;角落向中心缩小。 …

java读取配置文件信息

String configfile "cfg/client.cfg";// 读取配置文件账号密码Properties props new Properties();InputStream in new BufferedInputStream(new FileInputStream(configfile));props.load(in);String userName props.getProperty("userName");String …

php explore im,浏栏器器-explore.class.php_php

//原作者&#xff1a;epsilon7//SonyMusic(sonymusic163.net)class BrowserDetector {var $UA ""; //$HTTP_USER_AGENT的内容var $BROWSER "Unknown"; //浏览器类型http://www.gaodaima.com/46792.html浏栏器器-explore.class.php_phpvar $PLATFORM &quo…

计算机评语公式怎么输,在excel中,如何使用公式写评语

2006-03-17还有1个多月就要考英语专4了&#xff0c;请问大家&#xff0c;现在该怎么复习呢&#xff1f;还有专4的补考和初考哪个难啊&#xff0c;通过率有多少啊&#xff1f;首先我想说的是因为你们学校的原因要你们补考,那我想这个证书是会得到国家的认可的。然后就是复习。一…

001_python单元测试

一、同事推荐的 pytest库 > 官网:http://doc.pytest.org/en/latest/ github地址>https://github.com/pytest-dev/pytest/ 二、python标准库的unittest的特性和java的junit很相似。 转载于:https://www.cnblogs.com/arun-python/p/6568631.html

三星android获取root权限,三星G9250(S6 Edge公开版全网通 Android 5.1)获取ROOT权限详解教程...

伴随着安卓刷机越来越流行&#xff0c;很多安卓用户都喜欢上了这种可以自定个性系统的行为&#xff0c;那么三星G9250(S6 Edge公开版全网通 Android 5.1)怎么获取ROOT权限?三星G9250(S6 Edge公开版全网通 Android 5.1)一ROOT过程如何操作呢?奇兔小编在此大家说一说一键ROOT的…

认识和了解python

一: Python介绍 1.1 python创始人吉多.范罗苏姆(龟叔)在1989年开发.python崇尚优美,清晰,简单. 1.2 python是一门解释型语言,属于弱类型语言. 1.3 优点: 1.优雅,明确,简单 2.开发率高 3.可移植性,可扩展性,可嵌入型 缺点: 1.速度慢, 2…

惰性求值 php,详细介绍C#函数式编程的示例代码

public double MemoryUtilization(){//计算目前内存使用率var pcInfo new ComputerInfo();var usedMem pcInfo.TotalPhysicalMemory - pcInfo.AvailablePhysicalMemory;return (double)(usedMem / Convert.ToDecimal(pcInfo.TotalPhysicalMemory));}public int BigCalculatat…

wowpve服务器优势,PVE服务器法师对本职业的一点看法

看过了各位高手的对法师的一些看法&#xff0c;其中被喷的也不在少数&#xff0c;其实大家公认的在魔兽世界里没有最强的职业&#xff0c;只有更强的玩家&#xff0c;所有流派的诞生都是各位玩家在不断的探索中发现的&#xff0c;我是一个休闲法师玩家在这里只谈谈自己的一些看…

安装Android SDK需要选择哪些,开始为Android开发,我应该选择安装哪些SDK?

我开始将我的开发人员技能扩展到Android开发.我安装了所有的工具和配置,每件事看起来都很棒,作为默认设置,我安装了3.2 SDK,但是没有太多的文档在那个,2.x SDK上的模式是什么.它是否像IOS,android有一个良好的向后可计算性&#xff1f;我可以继续使用3.x并依靠它(使用2.x SDK中…

oracle 分区使用情况,Oracle Hash分区的使用总结

近期项目需要用到分区表&#xff0c;但是分区键值有无法确定&#xff0c;因此只能使用hash分区(range、list分区以前常用&#xff0c;比hash分区简单)&#xff0c;查询了文档&#xff0c;发现上面说的和实际使用时有点差距&#xff0c;就专门做实验验证下。官方文档(11g、12c的…

第四周工作总结

转载于:https://www.cnblogs.com/yuezhihao/p/6587333.html

VS2013\VS2017 使用git 总是需要输入账号密码

问题&#xff1a; VS2013\VS2017 使用git 总是需要输入账号密码 解决方案&#xff1a;删除原凭证&#xff0c;或者修改原凭证&#xff0c;重新输入一次账号和密码并且选择“记住凭证”即可&#xff01; 转载于:https://www.cnblogs.com/zhaokunbokeyuan256/p/9583091.html

css炫酷标题,纯css3鼠标滑过图片炫酷标题显示特效

很多网站的图片鼠标滑过显示标题效果都是使用jQuery来完成的&#xff0c;现在&#xff0c;我们可以使用CSS3 animations来完成同样惊艳的效果。如果你对CSS3 animations还不了解&#xff0c;请先阅读CSS3 animations。HTML我们使用html5来制作这款插件。通过figure和figcaption…

学习成长就到鸿蒙思维,庆国庆,迎中秋,鸿蒙教育享双节99元开启思维之旅!!...

原标题&#xff1a;庆国庆&#xff0c;迎中秋&#xff0c;鸿蒙教育享双节99元开启思维之旅&#xff01;&#xff01;庆国庆&#xff0c;迎中秋&#xff0c;鸿蒙教育享双节99元开启思维之旅&#xff01;&#xff01;鸿蒙口才&#xff0b;绘画课推出99元体验课程&#xff01;学1科…

String拼接字符串效率低,你知道原因吗?

面试官Q1&#xff1a;请问为什么String用""拼接字符串效率低下&#xff0c;最好能从JVM角度谈谈吗&#xff1f; 对于这个问题&#xff0c;我们先来看看如下代码&#xff1a; public class StringTest {public static void main(String[] args) {String a "abc&…

oracle01003,ORA-01003:nostatementparsed-Oracle

手贱&#xff0c;故意删除了一张表&#xff0c;在OGG同步数据的同时&#xff0c;删除之后立刻报错&#xff0c;如下&#xff1a;OCI Error ORA-12096: error in materialized view log on "JTINFO"."TBL_USERID"ORA-01003: no statement parsed (status 1…

笔记一:python安装和执行

一&#xff1a;学习内容 python安装python简介python执行二&#xff1a;python安装 1. 下载python&#xff0c;网地址&#xff1a;https://www.python.org/&#xff0c;进入地址后&#xff0c;点击下载downloads下的windows 2. 进入下载页后&#xff0c;选择要下载的版本和类型…

一个客户机-服务器系统使用了卫星网络,客户机/服务器体系结构可用于局域网、广域网和WWW。这三种用途迥异的网络的一个共同特点是工作负 - 试题答案网问答...

相关题目与解析关于客户机/服务器体系结构的错误说法是()A.曾经是一种流行的结构B.可用于广域网C.不可用于万●C/S(客户机/服务器)与B&#xff0f;S(浏览器服务器)体系结构的区别是&#xff1a;(57)。(57)A&#xff0e;B/S建立在局域网上&#xff0c;C/S●C/S(客户机/服务器)与…

android 初始化语言,3.4.1 Android初始化语言(1)

3.4 init.rc文件解析过程init.rc文件按照一定的格式组织&#xff0c;要分析init.rc文件的解析过程&#xff0c;首先要熟悉它的格式。init.rc的文件格式由Android初始化语言(Android Init Language)定义&#xff0c;所以这里首先分析Android初始化语言。3.4.1 Android初始化语…

[bzoj3673/3674可持久化并查集加强版]

n个集合 m个操作 操作&#xff1a; 1 a b 合并a,b所在集合 2 k 回到第k次操作之后的状态(查询算作操作) 3 a b 询问a,b是否属于同一集合&#xff0c;是则输出1否则输出0 0<n,m<2*10^5 强制在线。 这两题一题都一样&#xff0c;另一题比较水&#xff0c;nm只有2*10^4,允许…

[Manthan, Codefest 18][Codeforces 1037E. Trips]

题目链接&#xff1a;1037E - Trips 题目大意&#xff1a;有n个人&#xff0c;m天&#xff0c;每天晚上都会有一次聚会&#xff0c;一个人会参加一场聚会当且仅当聚会里有至少k个人是他的朋友。每天早上都会有一对人成为好朋友&#xff0c;问每天晚上最多能有多少人参加聚会。朋…

oracle 10g undo 管理,Oracle 10g undo表空间管理

一、oracle 9i起&#xff0c;有两种undo管理方式&#xff1a;AUM Automatic Undo ManagementMUN Manual Undo Management建议使用 AUM &#xff0c;下面只讨论AUM一、Oracle 9i起&#xff0c;有两种undo管理方式&#xff1a;AUM Automatic Undo ManagementMUN Manual Undo Mana…

电子狗显示连接不上服务器,大家觉得我这样做得对吗?行车记录仪新名词:云狗...

“云”概念化已经成为新轮的市场趋势&#xff0c;些行车记录仪品牌已经加入云狗功能&#xff0c;云狗普通的电子狗有什么区别&#xff1f;“云”概念对于行车记录仪行业发展的意义何在&#xff1f;何谓“云电子狗”&#xff1f;云电子狗指通过无线互联网络具备实时与中…

织梦html引入html代码,织梦标签引入共html.doc

织梦标签引入共html1.无法在这个位置找到: {dede:include filename"织梦模板include插入非模板目录文件出现“无法在这个位置找到”错误的解决办法以下是dede V55_UTF8查dede include标签手册(3) include 引入一个文件&#xff0c;形式为&#xff1a;{dede:include file文…

AutoMapper用法

AutoMapper是对象到对象的映射工具。在完成映射规则之后&#xff0c;AutoMapper可以将源对象转换为目标对象。 作者&#xff1a;齐飞 原文&#xff1a;http://www.qeefee.com/article/automapper 配置AutoMapper映射规则 AutoMapper是基于约定的&#xff0c;因此在实用映射之前…

【洛谷习题】小A点菜

虽然也是一道dp的入门题&#xff0c;但就是想不到&#xff0c;或者说不会实现。dp还是要多做题。 链接&#xff1a;https://www.luogu.org/problemnew/show/P1164 我们可以设dp[i][j]表示以考虑完第i件&#xff0c;恰好消费j元的方案数。那么dp[i][j]dp[i-1][j]dp[i-1][j-a[i]]…