有个项目需求是做个在日期上选择的,就是这种:

网上看了几个日期的demo都太厚重了,移植起来太麻烦,然后打算自己写。

就先写个简化的demo看看,主要有几个关键点:

  • 首先要根据当前日期获取这个月有几天
  • 然后判断这个月份第一天是周几
  • 再根据上面两个数据在合理的位置显示数据
  • 还要记录下当前的日期方便切换月份
  • 如果调接口的话其实根据后台给数据比对下对应的日期展示数据即可

其中有一个容易迷糊的是获取的星期天是第一天,下标是1

所以我们的数组是这样的

_weekdays = [NSArray arrayWithObjects: [NSNull null],@"星期日", @"周一", @"周二", @"周三", @"周四", @"周五", @"周六", nil];

好吧,看下写出来的效果:

总的来说没什么难度,就是要熟悉下关于日期的api.

   //3.获取这个月总天数,填充数据源
NSRange range = [calendar rangeOfUnit:NSCalendarUnitDay inUnit:NSCalendarUnitMonth forDate:self.currentDate];
NSUInteger numberOfDaysInMonth = range.length;
NSLog(@"%lu", (unsigned long)numberOfDaysInMonth); //4.获取这个月的第一天为周几
NSCalendar *cal = [NSCalendar currentCalendar];
NSDateComponents *comps = [cal
components:NSCalendarUnitYear | NSCalendarUnitMonth
fromDate:self.currentDate];
lastMonthComps.day = 1;
NSDate *firstDay = [cal dateFromComponents:comps];
NSCalendarUnit calendarUnit = NSCalendarUnitWeekday;
NSDateComponents *firsComponents = [cal components:calendarUnit fromDate:firstDay]; NSLog(@"%@", [_weekdays objectAtIndex:firsComponents.weekday]);

demo完整代码

日期小demo的更多相关文章

  1. Jsoup小Demo

    Jsoup小Demo public class JsoupUtil { public void parseWangYi() { Document doc = null; try { //eg1:解析百 ...

  2. python turtle库的几个小demo

    一.先上图 一个同切圆和五角星 上代码 import turtle #同切圆 turtle.pensize(2) turtle.circle(10) turtle.circle(40) turtle. ...

  3. js特效 15个小demo

    js特效和15个小demo 代码如下:images文件夹未上传 1.图片切换: <!DOCTYPE html> <html> <head> <title> ...

  4. 新手 gulp+ seajs 小demo

    首先,不说废话,它的介绍和作者就不在多说了,网上一百度一大堆: 我在这里只是来写写我这2天抽空对seajs的了解并爬过的坑,和实现的一个小demo(纯属为了实现,高手请绕道); 一.环境工具及安装 1 ...

  5. Nancy之基于Nancy.Hosting.Self的小Demo

    继昨天的Nancy之基于Nancy.Hosting.Aspnet的小Demo后, 今天来做个基于Nancy.Hosting.Self的小Demo. 关于Self Hosting Nancy,官方文档的 ...

  6. Nancy之基于Nancy.Owin的小Demo

    前面做了基于Nancy.Hosting.Aspnet和Nancy.Hosting.Self的小Demo 今天我们来做个基于Nancy.Owin的小Demo 开始之前我们来说说什么是Owin和Katan ...

  7. Nancy之基于Self Hosting的补充小Demo

    前面把Hosting Nancy with ASP.NET.Self Hosting Nancy和Hosting Nancy with OWIN 以demo的形式简单描述了一下. 这篇是为Self H ...

  8. [Unity3D]做个小Demo学习Input.touches

    [Unity3D]做个小Demo学习Input.touches 学不如做,下面用一个简单的Demo展示的Input.touches各项字段,有图有真相. 本项目已发布到Github,地址在(https ...

  9. Android -- 自定义View小Demo,动态画圆(一)

    1,转载:(http://blog.csdn.NET/lmj623565791/article/details/24500107),现在如下图的效果: 由上面的效果图可以看到其实是一个在一个圆上换不同 ...

随机推荐

  1. wcf 上传文件报413,404和发布错误

    上传文件错误: 其实要修改所有的服务,不管是服务端还是客户端,Binding那边增加一个没有设置名字的默认配置就OK了:  <binding   closeTimeout="00:10 ...

  2. windows server 2012 + sql server 2008 r2安装

    windows server 2012 r2  里面安装 sql server 2008 r2 问题总结 前提是 windows server 2012 r2 已经安装完成  ,(仅仅是安装完成 啥服 ...

  3. JavaScript--我发现!原来你是这样的JS(1)

    一.前言: 前段时间看红宝书(JavaScript高级程序设计),但没有计划的去看,也没有做详细的笔记,读了之后有点空虚,感觉不对劲啊,学的东西很难记住,印象不深啊,有种挫败感,作前端的js都学不好怎 ...

  4. django框架简介

    -------------------MVC与MVT框架-------------------1.MVC MVC框架的核心思想是:解耦.降低各功能模块之间的耦合性,方便将来变化时,更容易重构代码,最大 ...

  5. ORACLE SEQUENCE的简单介绍

    先假设有这么一个表: create table S_Depart ( DepartId INT not null, DepartName NVARCHAR2() not null, DepartOrd ...

  6. js变量以及其作用域详解

    详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp73   一.变量的类型  Javascript和Java.C这些语言不同 ...

  7. (复杂值vs原始值)&&内存空间 — 准确我们的JavaScript世界观(一):

    写在前面 最近在读<JavaScript启示录>,这本书不是JavaScript的详尽的参考指南,但是把对象作为了解JavaScript的透镜,受益匪浅. 那么我们先来聊一下JavaScr ...

  8. jquery 函数大全

    jquery函数大全转载  Attribute:$(”p”).addClass(css中定义的样式类型); 给某个元素添加样式$(”img”).attr({src:”test.jpg”,alt:”te ...

  9. JOptionPane弹框常用实例

    最近在做swing程序中遇到使用消息提示框的,JOptionPane类其中封装了很多的方法. 很方便的,于是就简单的整理了一下. 1.1 showMessageDialog 显示一个带有OK 按钮的模 ...

  10. CRC与MD5的异同

    php中CRC32的用法: crc32 - 计算一个字符串的 crc32 多项式 生成 string 参数的 32 位循环冗余校验码多项式--: 这句话从英文翻译过来的,不正确,准确的说应该是这么理解 ...