python123个人所得税计算器(新版个人所得税计算python)
十三个个税计算器
十三个个税计算器
个税计算器,又名“个人所得税计算器”,根据收入类型、金额等,计算每笔交易应缴纳税款与税后收入等。以下是我帮大家整理的十三个个税计算器,欢迎阅读,希望大家能够喜欢。
第十三个月的工资跟正常工资一样按照区间范围缴纳对应的所得税即可。
年终奖个人所得税计算税率表
级数 全月应纳税所得额(含税级距) 全月应纳税所得额(不含税级距) 税率(%) 速算扣除数
1 不超过1,500元 不超过1455元的 3 0
2 超过1,500元至4,500元的部分 超过1455元至4155元的部分 10 105
3 超过4,500元至9,000元的部分 超过4155元至7755元的部分 20 555
4 超过9,000元至35,000元的部分 超过7755元至27255元的部分 25 1,005
5 超过35,000元至55,000元的部分 超过27255元至41255元的部分 30 2,755
6 超过55,000元至80,000元的部分 超过41255元至57505元的部分 35 5,505
7 超过80,000元的'部分 超过57505元的部分 45 13,505
2011年,我国出台了新的个人所得税法案。这一算法明确规定了年终奖个人所得税的计算原则。年终奖个人所得税计税根据不同的情况有两种计算方法。
(1)月薪超过3500的(不含保险),所得年终奖÷12,按照得出的数额找到对应税率,然后直接套入年终奖的计算公式,得出应缴税额。
例如,张先生年终奖金是24000元,而且当月工资为3600元。我们先算税率24000÷12=2000元,那么对应税率表应该是10%的税率和105的速算扣除数。
按照公式,应纳税额为:24000 ×10%-105=2295元
(2)月薪不足3500的(不含保险),则先从年终奖中拿出一部分钱,将当月工资补足3500元后,然后将剩余的年终奖金额套入计算公式,得出应缴税额。
例如,小白今年第一年工作,发放年终奖的当月工资扣除五险一金后为3040元,年终奖为1万元,那么小白应缴多少个人所得税呢?
根据公式,我们需要首先从年终奖中减去一部分补足3500元标准:3500-3040=460元。
然后扣除这460元,剩余年终奖金额计税:10000-460=9540元。
然后将9540元除以12得出795元,对应的税率为3%,那么年终奖扣税额为9540×3%-0=286.2元。
小白应缴纳年终奖个税286元。
第13个月工资的缴纳个人所得税
《国家税务总局关于个人所得税若干政策问题的批复》(国税函〔2002〕629号)规定,国家机关、事业单位、企业和其他单位在实行双薪制(按照国家有关规定,单位为其雇员多发放一个月工资)后,个人因此取得的双薪,应单独作为一个月工资、薪金所得计征个人所得税。对上述双薪所得原则上不再扣除费用,应全额作为应纳税所得额按适用税率计算纳税。
上述例子中,该会计师事务所在计算“第13个月工资”应代扣代缴的个人所得税时,基本是按照国税函〔2002〕629号文件来执行的。但事务所的员工提出了不同的意见,他们认为“第13个月工资”应认定为奖金,应按此数额除以12后确定税率来征税,他们的依据是《国家税务总局关于调整个人取得全年一次性奖金等计算征收个人所得税方法问题的通知》(国税发〔2005〕9号)文件。根据国税发〔2005〕9号文件的定义,全年一次性奖金是指“行政机关、企事业单位等扣缴义务人根据全年经济效益和对雇员全年工作业绩的综合考核情况向雇员发放的一次性奖金。上述一次性奖金也包括年终加薪,实行年薪制和绩效工资办法的单位根据考核情况兑现的年薪和绩效工资”。
从“第13个月工资”和“全年一次性奖金”的定义看,他们之间的关系是比较难界定的。比如,有些企业在年终只有发13个月工资的规定,没有年终奖;有些企业是在年终考核后发年终奖,没有发13个月工资的规定;还有些企业既在年终对个人发放“第13个月工资”,也根据考核情况发年终奖。因此,“第13个月工资”和年终奖并没有必然的关系,只是不同企业的不同做法。
国税发〔2005〕9号文下发后,规定该文件自2005年1月1日起执行,以前规定与该规定不一致的,按此规定执行。同时该文件还明确了国税发〔1996〕206号、国税发〔1996〕107号文废止执行。虽然国税发〔2005〕9号文没有明确废止国税函〔2002〕629号文件,但国税函〔2002〕629号文件中关于“第13个月工资”征税的相关规定如何与国税发〔2005〕9号文衔接是我们重点关心的问题。
国税发〔2005〕9号文第五条规定,雇员取得除全年一次性奖金以外的其他各种名目奖金,如半年奖、季度奖、加班奖、先进奖、考勤奖等,一律与当月工资、薪金收入合并,按税法规定缴纳个人所得税。从性质上讲,企业发放的除按劳动合同规定的工资外,其他形式的报酬都属于奖金性质。因此,“第13个月工资”也应该属于一种奖金形式。
在确定了这一点后,我们来看看在国税发〔2005〕9号文下,“第13个月工资”该如何征收个人所得税。
一、如果企业在年底只发放“第13个月工资”不发放其他性质的一次性奖金:“第13个月工资”应依据国税发〔2005〕9号文的规定,将“第13个月工资”除以12,按其商数确定适用税率和速算扣除数来计算缴纳个人所得税。
二、如果企业在年底既发放“第13个月工资”也发放一次性奖金:根据国税发〔2005〕9号文第三条规定,在一个纳税年度内,对每一个纳税人,该计税方法只允许采用一次。同时结合第五条的规定,我们认为,对于企业既发放“第13个月工资”也发放一次性奖金,由于对“第13个月工资”和年终一次性奖金的关系,法律上也没有明确定义,企业可以在“第13个月工资”和全年一次性奖金中任选一个,按国税发〔2005〕9号文规定的方法计算缴纳个人所得税,但不能选择对“第13个月工资”和年终一次性奖金都按国税发〔2005〕9号文规定的方法来计算。如果选择一次性奖金按国税发〔2005〕9号文来计算,“第13个月工资”就必须和当月发放的工资薪金合并计算缴纳个人所得税。如果选择将“第13个月工资”按国税发〔2005〕9号文计算,则年终一次性奖金就必须和当月发放的工资合并计算缴纳个人所得税。
例如:某企业与A员工签订用人合同时规定,每月除支付A员工工资3000元外,公司会在年底根据经营情况,给每位员工发放第13个月工资。除此之外,公司会根据人事部门制定的绩效考核办法,对被评选为“优秀员工”的个人,派发1万元的年终奖。
(1)选择年终一次性奖金按国税发〔2005〕9号文来计算:
10000÷12=833(元),税率10%,速算扣除数25;
一次性奖金应纳税额:10000×10%-25=975(元);第13个月工资应纳税额:(3000+3000-1600)×15%-125=535(元);合计应纳税额:975+535=1510(元)。
(2)选择第13个月工资按国税发〔2005〕9号文来计算:
3000÷12=250(元),税率5%;
第13个月工资应纳税额:3000×5%=150(元);
一次性奖金应纳税额:(3000+10000-1600)×20%-375=1905(元);
合计应纳税额:150+1905=2055(元)。
从上面的计算可以看出,选择将一次性奖金按国税发〔2005〕9号文来计算比较划算。当然,“第13个月工资”和年终一次性奖金的数额和企业的薪酬结构是密切相关的。一般而言,对既发年终奖又发“第13个月工资”的企业来说,如果“第13个月工资”数额大于一次性奖金的,选择“第13个月工资”按国税发〔2005〕9号文来计算比较划算,反之则应选择年终一次性奖金。
;
税前税后工资怎么算?税前税后工资计算器
;?????很多上班族经常要算算自己本月的税前税后工资,特别是申请的贷款时候需要提交自己的税前、税后工资证明。可能有的人不知道税前税后工资是怎么算的?下面,我们来看下税前税后工资的计算方法是怎样的?
1、工资扣税计算器
??????以3500元为标准扣税。可计算加班时数,请假扣薪,全勤将等。计算方式可自行设置。方便操作。
2、个人工资计算器
??????个人工资计算器,可用于计算上班族们的各项工资指数,包括社保、奖金、加班费、基本工资等等,个人工资计算器还可计算个人所得税等。
??????社保基数和基本工资是必填项,软件默认个税起点是执行国家标准3500元,即超过3500的部分会执行交税标准,不超过则不用交税。
3、工资及年终奖个人所得税计算器
??????工资及年终奖个人所得税计算器(年终奖所得税计算器)功能和特点:
??????1、无需编写公式,自动计算工资或年终奖个人所得税;2、税率级距和起征额可调整;3、支持人员批量导入,成批自动计量个税;
??????4、支持导出功能,计算后的工资表可导出成Excel等多种格式文件;5、纯绿色软件,无需安装;6、完全免费。
求一个PYTHON案例
# 以下程序可能要安装OpenCV2.0(并编译好并配置好环境)以及Xvid解码器才能运行
# _*_coding: cp936_*_
import cv
capture = cv.CreateFileCapture("tmp.avi")
#请确保当前目录下有tmp.avi文件
fps = cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_FPS)
totalFrameNumber =cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_FRAME_COUNT)
frameWidth = cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_FRAME_WIDTH)
frameHeight = cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_FRAME_HEIGHT)
print fps, totalFrameNumber, frameWidth, frameHeight
frame = cv.QueryFrame(capture)
while frame:
cv.ShowImage('Title', frame)
frame = cv.QueryFrame(capture)
if cv.WaitKey(1000 / fps) == 27:# ESC键退出视频播放
cv.DestroyWindow('Title')
break
一个文件夹整理工具wxPython版本(不清楚软件用法情况下可以打开该软件看看界面但请不要使用里面的功能,后果自负。)
# -*- coding: cp936 -*-
# file:aa.py
import os, shutil, sys
import wx
sourceDir = ''
sourceFiles = ''
preWord = 0
def browse(event):
global sourceDir, textPreWord, textDirName
dialog = wx.DirDialog(None, u'选择待处理文件夹', style = wx.OPEN)
if dialog.ShowModal() == wx.ID_OK:
sourceDir = dialog.GetPath().strip('\"')
textDirName.SetLabel(sourceDir)
dialog.Destroy()
textPreWord.SetFocus()
def okRun(event):
global preWord, sourceDir, sourceFiles, textPreWord
preWord = int(textPreWord.GetValue())
if preWord = 0:
wx.MessageBox(u'请正确输入前缀字符个数!', u'出错啦', style = wx.ICON_ERROR | wx.OK)
textPreWord.SetFocus()
return
sourceDir = textDirName.GetValue()
sourceFiles = os.listdir(sourceDir)
for currentFile in sourceFiles:
tmp = currentFile
currentFile = sourceDir + '\\' + currentFile
currentFile = currentFile.strip('\"')
if os.path.isdir(currentFile):
continue
targetDir = '%s\\%s'%(sourceDir, tmp[:preWord])
if not os.path.exists(targetDir):
os.mkdir(targetDir)
shutil.move(currentFile, targetDir)
wx.MessageBox(u'任务完成!', u'好消息', style = wx.ICON_ERROR | wx.OK)
def onChange(event):
global dir1, textDirName
p = dir1.GetPath()
textDirName.SetLabel(p)
app = wx.App(0)
win = wx.Frame(None, title = u'文件整理', size = (400, 450))
bg = wx.Panel(win)
btnBrowse = wx.Button(bg, label = u'浏览')
btnBrowse.Bind(wx.EVT_BUTTON, browse)
btnRun = wx.Button(bg, label = u'整理')
btnRun.Bind(wx.EVT_BUTTON, okRun)
dir1 = wx.GenericDirCtrl(bg, -1, dir='', style=wx.DIRCTRL_DIR_ONLY)
tree = dir1.GetTreeCtrl()
dir1.Bind(wx.wx.EVT_TREE_SEL_CHANGED, onChange, id = tree.GetId())
textPreWord = wx.TextCtrl(bg)
textDirName = wx.TextCtrl(bg)
textPreWord.SetFocus()
class MyFileDropTarget(wx.FileDropTarget):#声明释放到的目标
def __init__(self, window):
wx.FileDropTarget.__init__(self)
self.window = window
def OnDropFiles(self, x, y, filenames):#释放文件处理函数数据
for name in filenames:
if not os.path.isdir(name):
wx.MessageBox(u'只能选择文件夹!', '出错啦', style = wx.ICON_ERROR | wx.OK)
return
self.window.SetValue(name)
dt = MyFileDropTarget(textDirName)
textDirName.SetDropTarget(dt)
hbox0 = wx.BoxSizer()
hbox0.Add(dir1, proportion = 1, flag = wx.EXPAND | wx.ALL, border = 5)
hbox1 = wx.BoxSizer()
hbox1.Add(textDirName, proportion = 1, flag = wx.EXPAND, border = 5)
hbox1.Add(btnBrowse, proportion = 0, flag = wx.LEFT, border = 5)
hbox2 = wx.BoxSizer()
hbox2.Add(textPreWord, proportion = 1, flag = wx.EXPAND, border = 5)
hbox2.Add(btnRun, proportion = 0, flag = wx.LEFT, border = 5)
vbox = wx.BoxSizer(wx.VERTICAL)
vbox.Add(hbox0, proportion = 1, flag = wx.EXPAND | wx.ALL, border = 5)
vbox.Add(wx.StaticText(bg, -1, u'\n 选择待处理文件夹路径:'))
vbox.Add(hbox1, proportion = 0, flag = wx.EXPAND | wx.ALL, border = 5)
vbox.Add(wx.StaticText(bg, -1, u'\n\n 前缀字符个数:'))
vbox.Add(hbox2, proportion = 0, flag = wx.EXPAND | wx.ALL, border = 5)
vbox.Add(wx.StaticText(bg, -1, u'\n'))
bg.SetSizer(vbox)
win.Center()
win.Show()
app.MainLoop()
#py2exe打包代码如下:
from distutils.core import setup
import py2exe
setup(windows=["aa.py"])
打包好了之后有18Mb。
一个文件内容批量替换摸查器(wxPython版本):
# _*_ coding:cp936 _*_
from string import join, split
import os
import wx
def getAllFiles(adir):
tmp = []
for parent, dirs, files in os.walk(adir):
for afile in files:
tmp.append(os.path.join(parent, afile))
return tmp
def browse(event):
dialog = wx.DirDialog(None, '选择待处理文件夹', style=wx.OPEN)
if dialog.ShowModal() == wx.ID_OK:
aDir = dialog.GetPath()
textDir.SetLabel(aDir)
dialog.Destroy()
def check():
promp.SetForegroundColour('#FF0000')
promp.SetLabel(' 搜索中...')
listFound.ClearAll()
tmp = []
files = getAllFiles(textDir.GetValue())
for filename in files:
try:
afile = open(filename, 'r')
except IOError:
print '打开文件错误。'
continue
try:
content = afile.read().decode('utf-8')
afile.close()
except:
try:
afile = open(filename, 'r')
content = afile.read().decode('cp936')
afile.close()
except:
continue
if textNeedChar.GetValue() in content:
tmp.append(filename)
listFound.InsertStringItem(0, filename)
parentDir.SetForegroundColour('#FF0000')
# parentDir.SetLabel(' 正在搜索:'+filename)
return tmp
def onFind(event):
check()
parentDir.SetLabel(' 搜索结果:')
promp.SetLabel(' 任务完成。')
wx.MessageBox(listFound.GetItemCount() and '任务完成,找到%d个文件。' % listFound.GetItemCount()
or '未找到包含"%s"的文件!' % textNeedChar.GetValue().encode('cp936'), '查找结束',
style=wx.ICON_INFORMATION | wx.OK)
def onReplace(event):
dg = wx.TextEntryDialog(bg, '替换成:', '提示', style=wx.OK | wx.CANCEL)
if dg.ShowModal() != wx.ID_OK:
return
files = check()
userWord = dg.GetValue()
#if not userWord:
#wx.MessageBox('请输入要替换为何字!', style=wx.ICON_ERROR | wx.OK)
#onReplace(event)
#return
for filename in files:
try:
afile = open(filename, 'r')
except IOError:
print '打开文件错误。'
continue
try:
content = afile.read().decode('utf-8')
afile.close()
except:
try:
afile = open(filename, 'r')
content = afile.read().decode('cp936')
afile.close()
except IOError:
print '打开文件错误。'
continue
content = content.replace(textNeedChar.GetValue(), userWord)
try:
content = content.encode('utf-8')
except:
pass
open(filename, 'w').write(content)
parentDir.SetLabel(' 替换的文件:')
promp.SetLabel(' 任务完成。')
wx.MessageBox(listFound.GetItemCount() and '任务完成,替换了%d个文件。' % listFound.GetItemCount()
or '未找到包含"%s"的文件!' % textNeedChar.GetValue().encode('cp936'), '替换结束', style=wx.ICON_INFORMATION | wx.OK)
app = wx.App(0)
win = wx.Frame(None, title='文件整理', size=(400, 450))
bg = wx.Panel(win)
btnBrowse = wx.Button(bg, label='浏览')
btnBrowse.Bind(wx.EVT_BUTTON, browse)
btnFind = wx.Button(bg, label='查找')
btnFind.Bind(wx.EVT_BUTTON, onFind)
btnFind.SetDefault()
btnReplace = wx.Button(bg, label='替换')
btnReplace.Bind(wx.EVT_BUTTON, onReplace)
textNeedChar = wx.TextCtrl(bg, value='你好')
textDir = wx.TextCtrl(bg, value='E:\Workspace\Python\Python\e')
parentDir = wx.StaticText(bg)
promp = wx.StaticText(bg)
listFound = wx.ListCtrl(bg, style=wx.VERTICAL)
class MyFileDropTarget(wx.FileDropTarget):#声明释放到的目标
def __init__(self, window):
wx.FileDropTarget.__init__(self)
self.window = window
def OnDropFiles(self, x, y, filenames):#释放文件处理函数数据
for name in filenames:
'''if not os.path.isdir(name):
wx.MessageBox('只能选择文件夹!', '出错啦', style=wx.ICON_ERROR | wx.OK)
return '''
self.window.SetValue(name)
dt = MyFileDropTarget(textDir)
textDir.SetDropTarget(dt)
hbox1 = wx.BoxSizer()
hbox1.Add(textDir, proportion=1, flag=wx.EXPAND, border=5)
hbox1.Add(btnBrowse, proportion=0, flag=wx.LEFT, border=5)
hbox2 = wx.BoxSizer()
hbox2.Add(textNeedChar, proportion=1, flag=wx.EXPAND, border=5)
hbox2.Add(btnFind, proportion=0, flag=wx.LEFT, border=5)
hbox2.Add(btnReplace, proportion=0, flag=wx.LEFT, border=5)
vbox = wx.BoxSizer(wx.VERTICAL)
vbox.Add(wx.StaticText(bg, -1, '\n 选择待处理文件夹(可拖动文件夹到下面区域中):'))
vbox.Add(hbox1, proportion=0, flag=wx.EXPAND | wx.ALL, border=5)
vbox.Add(wx.StaticText(bg, -1, '\n\n 要替换 / 查找的文字:'))
vbox.Add(hbox2, proportion=0, flag=wx.EXPAND | wx.ALL, border=5)
vbox.Add(promp, proportion=0, flag=wx.EXPAND | wx.ALL, border=5)
vbox.Add(parentDir, proportion=0, flag=wx.EXPAND | wx.ALL, border=5)
vbox.Add(listFound, proportion=1,
flag=wx.EXPAND | wx.LEFT | wx.BOTTOM | wx.RIGHT, border=5)
bg.SetSizer(vbox)
win.Center()
win.Show()
app.MainLoop()
求助,用python编写一个模拟个人所得税计算器程序,数据看图
sal=float(input('请输入当月税前工资:'))
S=sal-3500
if 0S=1500:
L=S*0.03
print('应纳税%.2f元'%L)
elif 1500S=4500:
L=1500*0.03+(S-1500)*0.1
print('应纳税%.2f元'%L)
elif 4500S=9000:
L=1500*0.03+3000*0.1+(S-4500)*0.2
print('应纳税%.2f元'%L)
elif 9000S=35000:
L=1500*0.03+3000*0.1+4500*0.2+(S-9000)*0.25
print('应纳税%.2f元'%L)
elif 35000S=55000:
L=1500*0.03+3000*0.1+4500*0.2+26000*0.25+(S-35000)*0.3
print('应纳税%.2f元'%L)
elif 55000S=80000:
L=1500*0.03+3000*0.1+4500*0.2+26000*0.25+20000*0.3+(S-55000)*0.35
print('应纳税%.2f元'%L)
elif S80000:
L=1500*0.03+3000*0.1+4500*0.2+26000*0.25+20000*0.3+25000*0.35+(S-80000)*0.45
print('应纳税%.2f元'%L)
else:
print('未到起征点,不用交税')