2019独角兽企业重金招聘Python工程师标准>>>

这里写的是给一个日期计算出 这个日期所在的一周是几号到几号。吧日期换成今天日期也就是本周是几号到几号。考虑到有跨月,跨年等等的问题,直接就根据秒数来计算比较不会错。在者考虑到过内外的一周是不一样的。国内周一是一周的第一天也就是一周是周一到周日,国外是周日的一周的第一天也就是周日到下周的周六。

#import "ViewController.h"@interface ViewController ()
{UITextField * _textField;
}@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];// 2016.8.8 星期一// 2016.8.9 星期二// 2016.8.11 星期4// 2016.8.14 星期日UIButton * btn = [[UIButton alloc]initWithFrame:CGRectMake((self.view.frame.size.width-80)/2.0, 100, 80, 30)];btn.backgroundColor = [UIColor orangeColor];btn.tag = 1001;[btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];[btn setTitle:@"国内计算" forState:UIControlStateNormal];[btn addTarget:self action:@selector(btnAction:) forControlEvents:UIControlEventTouchUpInside];[self.view addSubview:btn];UIButton * btn2 = [[UIButton alloc]initWithFrame:CGRectMake((self.view.frame.size.width-80)/2.0, 140, 80, 30)];btn2.backgroundColor = [UIColor orangeColor];[btn2 setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];[btn2 setTitle:@"国外计算" forState:UIControlStateNormal];btn2.tag = 1000;[btn2 addTarget:self action:@selector(btnAction:) forControlEvents:UIControlEventTouchUpInside];[self.view addSubview:btn2];_textField = [[UITextField alloc]initWithFrame:CGRectMake((self.view.frame.size.width-150)/2.0, CGRectGetMinY(btn.frame)-50, 150, 30)];_textField.backgroundColor = [UIColor yellowColor];[self.view addSubview:_textField];}- (void)btnAction:(UIButton*)sender
{if (sender.tag == 1000) {NSDictionary * dic = [ViewController weekfirstAndLastDay:_textField.text Formater:@"yyyy.MM.dd" Foreign:YES];NSLog(@"%@",dic);}else{NSDictionary * dic = [ViewController weekfirstAndLastDay:_textField.text Formater:@"yyyy.MM.dd" Foreign:NO];NSLog(@"%@",dic);}
}+(NSDictionary *)weekfirstAndLastDay:(NSString*)dateStr Formater:(NSString*)formater Foreign:(BOOL)foreign
{NSDateFormatter *formatter = [[NSDateFormatter alloc] init];[formatter setDateFormat:formater];NSDate * date =[formatter dateFromString:dateStr];NSArray * foreginDateArr = @[@"星期日",@"星期一",@"星期二",@"星期三",@"星期四",@"星期五",@"星期六"];NSArray * chineseDateArr = @[@"星期一",@"星期二",@"星期三",@"星期四",@"星期五",@"星期六",@"星期日"];NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];[dateFormatter setDateFormat:@"YYYY.MM.dd"];NSCalendar *calendar = [NSCalendar currentCalendar];NSDateComponents *comp = [calendar components:kCFCalendarUnitYear|kCFCalendarUnitMonth|kCFCalendarUnitDay|kCFCalendarUnitWeekday|kCFCalendarUnitDay fromDate:date];NSInteger foreginWeekDay = [comp weekday];NSString * foreginDateStr = foreginDateArr[foreginWeekDay-1];NSInteger chineseWeekDay = 0;if (foreign) {chineseWeekDay = foreginWeekDay;}else{for (int i = 0; i < foreginDateArr.count; i++) {if ([foreginDateStr isEqualToString:chineseDateArr[i]]) {chineseWeekDay = i+1;break;}}}NSInteger gapDate = 7- chineseWeekDay;//把时间转化成秒NSTimeInterval dateStamp = [date timeIntervalSince1970];//把秒转化成时间NSTimeInterval beginStamp = dateStamp - 24*60*60*(chineseWeekDay-1);NSTimeInterval endStamp = dateStamp + 24*60*60*gapDate;NSDate * begin = [NSDate dateWithTimeIntervalSince1970:beginStamp];NSDate * end = [NSDate dateWithTimeIntervalSince1970:endStamp];NSString * beginStr = [dateFormatter stringFromDate:begin];NSString * endStr = [dateFormatter stringFromDate:end];NSDictionary * dic = @{@"begin":beginStr,@"end":endStr,@"now":dateStr};return dic;
}

思路就是算出这个日期是属于一周的第几天,然后在相应的减去秒数,加上秒数算出一周是从几号到几号。

分别计算了国内外

转载于:https://my.oschina.net/langzhouzhou1/blog/739196

计算本周是几号到几号相关推荐

  1. 网络号和主机号具体计算原理-ipv4篇

    来自之前163网易博客,因博客倒闭,放CSDN供 大家学习. 1.标准分类的ip地址的网络号是, A类是前8位 B类是前16位 C类是前24位 举一个例子 如172.16.10.2,因为172.16. ...

  2. 网络号和主机号的计算

    网络号和主机号的计算 当前使用的IP地址有4个字节(32)组成,即IPV4编码方式.每个IP地址包换两部分:网络号和主机号.当分配给主机号的二进制位越多,则能标识的主机数就越多,相应地能标识的网络数就 ...

  3. Description 给出一个N*N的二维数组,求出其中的最大数和其所在的行号、列号(均从0开始计算)。 Input 第1行是一个正整数N(2≤N≤10),表示二维数组的大小。后跟N行,每行N个数。

    /*Description 给出一个N*N的二维数组,求出其中的最大数和其所在的行号.列号(均从0开始计算). Input 第1行是一个正整数N(2≤N≤10),表示二维数组的大小.后跟N行,每行N个 ...

  4. IP地址、子网掩码、网络号、主机号、子网号的计算

    IP地址.子网掩码.网络号.主机号.子网号的计算 IP地址(二级IP地址) 构成:网络号+主机号 分类 IP地址分类 网络号 主机号 A类 8位 24位 B类 16位 16位 C类 24位 8位 有效 ...

  5. 为什么租号玩显示服务器忙,租号玩上号器怎么用,租号玩上号器使用教程

    租号玩上号器是专门针对平台软件的租用账号登录软件,我们可以使用租号玩上号器来登录我们的租来的账号,并且软件的使用非常简单,功能非常强大,也可以屏蔽恶意插件, 租号玩上号器怎么用的详细教程 一.下载 二 ...

  6. [转帖]IP地址、子网掩码、网络号、主机号、网络地址、主机地址以及ip段/数字-如192.168.0.1/24是什么意思?...

    IP地址.子网掩码.网络号.主机号.网络地址.主机地址以及ip段/数字-如192.168.0.1/24是什么意思? 2016年03月26日 23:38:50 JeanCheng 阅读数:105674  ...

  7. 可用子网数要不要减2_详解IP地址、子网掩码、网络号、主机号、网络地址、主机地址...

    概述 今天主要对网络涉及的概念做个区分和讲解,涉及IP地址.子网掩码.网络号.主机号.网络地址.主机地址等. 相关概念 IP地址:4段十进制,共32位二进制,如:192.168.1.1 二进制就是:1 ...

  8. vue计算本周是今年的第几周

    需要使用moment类库 getWeekNum() {//获得当前日期是第几周的方法var year = new Date().getFullYear();var week = moment(new ...

  9. oracle技术圈熊掌号,百度“熊掌号”低调上线,意味着什么?

    摘要: 开抢了!双11创业者优选服务! 百度搜索在当下面临的挑战,最大的就是入口的不稳定性,出现了微信类似的超级APP.其次,很重要的一点就是百度搜索可以抓取的内容特别是优秀的内容变得... 开抢了! ...

最新文章

  1. 正则词典 - 开源项目
  2. android获取自定义属性,android 自定义控件中获取属性的三种方式(转)
  3. android考试编程题,30道android笔试题及答案
  4. hive的新分区和旧分区的概念问题
  5. PHP yii 框架源码阅读(一)
  6. shiro整合mybatis数据库
  7. 64位游戏找call_网络小游戏怎么修改技能满级,满血?教大家一个很简单的修改方法!...
  8. MAC 下使用ipv6、ipv4观看电视、网络电视
  9. qt android webview,qt browser 加载一个webview过程
  10. 小程序接口学习—开发接口
  11. sql server 按年月日分组
  12. css.ppt,CSS ppt.ppt
  13. 粒子群优化算法(PSO)python实践
  14. POI导出echarts统计报表到Excel
  15. 测度论与概率论基础(程士宏)学习笔记(二)
  16. 有 n 个学生站成一排,每个学生有一个能力值,牛牛想从这 n 个学生中按照顺序选取 k 名学生,要求相邻两个学生的位置编号的差不超过 d,使得这 k 个学生的能力值的乘积最大,你能返回最大的乘积吗?
  17. 笔记本连接android手机,安卓手机连接电脑,详细教您安卓手机怎样连接电脑
  18. PS 2019 Mac版 自学入门系列(二)——区域选中
  19. 求生之路怎么显示服务器,求生之路2怎么屏蔽rpg服务器 求生之路2屏蔽rpg服务器方法-超能街机...
  20. kafka中AR、ISR、OSR以及HW、LEO的区别

热门文章

  1. python学习课后练习题_python初步学习-练习题
  2. java autorun_〔批处理〕右键添加命令,让Autorun.inf见鬼去吧
  3. 高中计算机会考vb教程,高中信息技术VB会考上机程序题汇总
  4. vs2012建立java,在Microsoft Visual Studio 2012中使用Java
  5. 和县机电工程学校工业机器人_成都机电工程学校专业有哪些
  6. linux上mysql卸数_Linux下MySQL卸载和安装图文教程
  7. python @cached_property
  8. D3 Collection
  9. Hadoop Hbase单机配置
  10. 数据算法之冒泡排序(bubbleSort)的Java实现