OC 学习第一天

问题:个人所得税计算

计算方法

扣除标准3500元/月(2011年9月1日起正式执行)(工资、薪金所得适用)

应纳税所得额=扣除三险一金后月收入-扣除标准

应纳个人所得税税额=应纳税所得额×适用税率-速算扣除数

 201191日起调整后的7级超额累进税率


全月应纳税所得额


税率


速算扣除数(元)


全月应纳税所得额不超过1500元


3%


0


全月应纳税所得额超过1500元至4500元


10%


105


全月应纳税所得额超过4500元至9000元


20%


555


全月应纳税所得额超过9000元至35000元


25%


1005


全月应纳税所得额超过35000元至55000元


30%


2755


全月应纳税所得额超过55000元至80000元


35%


5505


全月应纳税所得额超过80000元


45%


13505

养老保险:单位20%,个人8%

医疗保险:单位8%,个人2%

失业保险:单位1%,个人0.5%

生育保险:单位0.6%,个人不用缴费

工伤保险:单位1%,个人不用缴费

住房公积金:单位5%-12%,个人5%-12%,按12%算

三险一金缴纳 上限为7662 ;超过,就按照7662缴纳;

#import "ZYAppDelegate.h"

@implementation ZYAppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

// Override point for customization after application launch.

self.window.backgroundColor = [UIColor whiteColor];

[self.window makeKeyAndVisible];

UILabel * lable1 = [[UILabel alloc]init];

lable1.text = @"请输入你的工资:";

lable1.frame = CGRectMake(20, 60, 140, 44);

[self.window addSubview:lable1];

//初始化textField

_salaryText = [[UITextField alloc] init];

_salaryText.borderStyle = UITextBorderStyleRoundedRect;

_salaryText.backgroundColor = [UIColor orangeColor];

_salaryText.frame = CGRectMake(170, 60, 140, 44);

[self.window addSubview:_salaryText];

UILabel * lable2 = [[UILabel alloc]init];

lable2.text = @"你应交对税为:";

lable2.frame = CGRectMake(20, 105, 140, 44);

[self.window addSubview:lable2];

_taxLable = [[UILabel alloc] init];

_taxLable.backgroundColor = [UIColor grayColor];

_taxLable.frame = CGRectMake(170, 105, 140, 44);

[self.window addSubview:_taxLable];

UIButton * calculate = [UIButton buttonWithType:UIButtonTypeCustom];

calculate.backgroundColor = [UIColor orangeColor];

calculate.frame = CGRectMake(130, 180, 60, 44);

[calculate setTitle:@"计算" forState:UIControlStateNormal];

[calculate addTarget:self action:@selector(calendarClick) forControlEvents:UIControlEventTouchUpInside];

[self.window addSubview:calculate];

return YES;

}

- (void)calendarClick

{

float salary = [_salaryText.text floatValue];

// 把工资赋值给计算五险一金的基准工资

float baseSalary = salary;

// 判断工资是否大于7662

if (salary > 7662) {

baseSalary = 7662;

}

// 计算三险一金

float insurence = baseSalary * (0.08+0.02+0.005+0.12);

// 计算扣除三险一金之后的收入

float outOfInsurence = salary - insurence;

// 计算扣除三险一金以及扣除标准之后的收入  纳税所得额

float taxBase = outOfInsurence - 3500;

// 判断纳税所得额是否小于0

if (taxBase < 0) {

NSLog(@"缴纳税额为 : 0");

_taxLable.text = @"0";

}else

{

float rateOfTaxation = 0;

float calculateQuickly = 0;

// 当纳税所得额 小于等于 1500

if (taxBase <=1500) {

rateOfTaxation = 0.03;

calculateQuickly = 0;

} else if (taxBase <= 4500) // 判断纳税所得额是否大于1500小于等于4500

{

rateOfTaxation = 0.1;

calculateQuickly = 105;

} else if (taxBase <= 9000)// 判断纳税所得额是否大于4500小于等于9000

{

rateOfTaxation = 0.2;

calculateQuickly = 555;

} else if (taxBase <= 35000)// 判断纳税所得额是否大于9000小于等于35000

{

rateOfTaxation = 0.25;

calculateQuickly = 1005;

} else if (taxBase <= 55000)// 判断纳税所得额是否大于35000小于等于55000

{

rateOfTaxation = 0.3;

calculateQuickly = 2755;

} else if (taxBase <= 80000)// 判断纳税所得额是否大于55000小于等于80000

{

rateOfTaxation = 0.35;

calculateQuickly = 5505;

} else  // 以上条件都不成立,进入此方法

{

rateOfTaxation = 0.45;

calculateQuickly = 13505;

}

// 计算应缴纳税额

float tax = taxBase * rateOfTaxation - calculateQuickly;

NSLog(@"应缴纳税额: %.2f",tax);

_taxLable.text = [NSString stringWithFormat:@"%.2f",tax];

}

}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

{

[self.window endEditing:YES];

}

@end

时间: 2024-10-29 19:08:20

OC 学习第一天的相关文章

oc学习第一天

OC第一天 2016-3-14 eg :1 #import <Foundation/Foundation.h> //在OC中包含头文件使用 #import //#import <Foundation/Foundation.h> 表示是:包含的是Foundation 框架中的Foundation.h //NSObject:OC的根类 //OC实现文件的后缀名为.m //总结系统内部的类和方法的特点 int main(int argc, const char * argv[]) { @

OC学习第一篇

方法: 类的方法注意事项: 1.+号 2.只能类调用,不能对象调用,因为+_号不同 3.允许类方法与对象方法重名,因为还有+_号可以区分它俩 4.同Java一样,类方法无法访问对象成员变量,因为类加载的时候,对象还没创建,而成员变量仅存在对象内存空间 注:类内存空间只保存方法列表,即类的,对象的~ + (void)Method; 对象的方法 1.前面固定写减号- 2.不同于函数,小括号()仅用来括住数据类型 3.参数和返回值,都必须用小括号包起来(void) -(void)Method    

OC学习篇之---协议的概念和用法

这一篇文章我们在来看一下OC中协议的概念以及用法,协议也是OC中的一个重点,Foundation框架以及我们后面在写代码都会用到. OC中的协议就是相当于Java中的接口(抽象类),只不过OC中的名字更形象点,因为我们在学习Java中的接口时候,看可以知道其实接口就相当于一种契约(协议),给他的实现类打上标记了,当然这个活在Java5.0之后,被注解替代了,因为注解就是为了此功能诞生的. 协议就是定义了一组方法,然后让其他类去实现 下面来看代码: WithProtocol.h [objc] vi

OC学习篇之---总结和学习目录

今天终于把OC的基础知识学习完了,但是这些知识只是最基础的,还有很多高级知识,这个可能需要后面慢慢的去学习才能体会到.下面就是这次学习OC的目录教程,如果大家发现有什么不正确的地方,请指正,小弟是新生,多请OC老鸟来喷~~ 1.OC学习篇之---概述 2.OC学习篇之---第一个程序HelloWorld 3.OC学习篇之---类的定义 4.OC学习篇之---类的初始化方法和点语法的使用 5.OC学习篇之---类的三大特性(封装,继承,多态) 6.OC学习篇之[email protected]关键

IOS开发-OC学习-常用功能代码片段整理

IOS开发-OC学习-常用功能代码片段整理 IOS开发中会频繁用到一些代码段,用来实现一些固定的功能.比如在文本框中输入完后要让键盘收回,这个需要用一个简单的让文本框失去第一响应者的身份来完成.或者是在做与URL有关的功能时,需要在Info.plist中添加一段代码进而实现让网址完成从Http到Https的转换,以及其他的一些功能. 在从一个新手到逐渐学会各种功能.代码.控件.方法如何使用的过程中,也在逐渐积累一些知识,但是一次总不会把这些东西都深刻记住并完全理解.所以在这儿记录下这些东西,用来

黑马程序员-OC学习笔记之block

过山车 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 9426    Accepted Submission(s): 4151 Problem Description RPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了.可是,过山车的每一排只有两个座位,而且还有条不成文的规矩,就是每个女生必须找个个男生做par

(转载)OC学习篇之---协议的概念和用法

在前一篇文章中我们介绍了OC中类的延展,这一篇文章我们在来看一下OC中协议的概念以及用法,协议也是OC中的一个重点,Foundation框架以及我们后面在写代码都会用到. OC中的协议就是相当于Java中的接口(抽象类),只不过OC中的名字更形象点,因为我们在学习Java中的接口时候,看可以知道其实接口就相当于一种契约(协议),给他的实现类打上标记了,当然这个活在Java5.0之后,被注解替代了,因为注解就是为了此功能诞生的. 协议就是定义了一组方法,然后让其他类去实现. 下面来看代码: Wit

OC学习16——对象归档

转载自  OC学习篇之---归档和解挡 OC中的归档就是将对象写入到一个文件中,Java中的ObjectInputStream和ObjectOutputStream来进行操作的.当然在操作的这些对象都是需要实现一个接口:Serializable,同样的OC中操作的对象也是需要实现一个协议的,后面会说到. 一.已有类型的归档和解档 首先来看一个简单的例子: 1 // 2 // main.m 3 // 33_ObjectToFile 4 // 5 // Created by jiangwei on

黑马程序员-OC学习笔记之autorelease与自动释放池

---------------------- IOS开发.Android培训.期待与您交流! ---------------------- 一.autorelease autorelease与release相似,是OC中的一个对象方法.这两个方法都能把对象的引用计数器减1,但是release是一个精确的减1,对对象的操作只能在release之前进行,如果是在之后,就会出现野指针错误:而autorelease是一个不精确的引用计数器减1,当给对象发送autorelease消息时,对象就会被放到自动