ios-iphone在数组中排序日期

问题描述

iphone在数组中排序日期
SQLite数据库中有下面的数组:

({  id=1;duedate = ""01-Apr-2013"";}{ id=2;duedate = ""01-May-2013"";}{id=3;duedate = ""01-Jun-2013"";}{ id=4;duedate = ""11-Jul-2013"";})

排序的代码:

NSSortDescriptor *sortDesc = [[NSSortDescriptor alloc] initWithKey:@""duedate"" ascending:YES];[assessment_list sortUsingDescriptors:[NSArray arrayWithObject:sortDesc]];

但是最后出现的排序不对:

({  id=1;duedate = ""01-Apr-2013"";}{id=3;duedate = ""01-Jun-2013"";}{id=2;duedate = ""01-May-2013"";}{ id=4;duedate = ""11-Jul-2013"";})

不知道为什么?

解决方案

因为它是按照字母顺序排列的

想根据日期排序,用下面的方法:

NSInteger dateSort(id dict1 id dict2 void* context){NSDateFormatter *formatter = [[NSDateFormatter alloc] init];[formatter setDateFormat:@""mm/dd/yyyy""];NSDate *date1 = [formatter dateFromString:[dict1 objectForKey:@""duedate""]];NSDate *date2 = [formatter dateFromString:[dict2 objectForKey:@""duedate""]];    return [[date1 compare:date2];}

调用函数:

[dateArray sortUsingFunction:dateSort context:NULL];
时间: 2025-01-11 11:22:38

ios-iphone在数组中排序日期的相关文章

ios-关于在数组中排序多个值

问题描述 关于在数组中排序多个值 有一个数组,其中有多个state. {"location":"Lekki Phase 1","state":"abc","country":"Nigeria"}, {"location":"Lekki Phase 2","state":"xyz","country&

基于php实现随机合并数组并排序(原排序)_php实例

最近做了一个项目,其中有这样一个需求要实现,原有帖子列表A,现在需要在A中推广新业务B,那么需要在A列表中1:1混合B中的数据,随机混合,但是需要保持A和B两列原来的数据排序,具体详情请看下文. 原理 获知总共元素数量N: for循环N次,取随机数: 根据随机数依次从头获取A或B的值,推入新数组中: 代码: //随机合并两个数组元素,保持原有数据的排序不变(即各个数组的元素在合并后的数组中排序与自身原来一致) function shuffleMergeArray() { $mergeArray

java去除已排序数组中的重复元素_java

题目描述 给定一个已排序的数组,去除数组中的重复元素,只保留一个重复的元素,并且返回新的数组长度. 要求: 不要给数组分配额外的空间,你必须使用常量的内存大小进行原地操作. 例如: 给出数组A=[1,1,2],你的函数调用之后必须返回长度length=2,并且A现在变成[1,2]. 输入 一个已排序的数组,例如[1,1,2]. 输出 返回数组新的长度,例如length=2. 快慢指针法 设置fast指针遍历数组,slow指针指向不重复元素的下一位. public static int remov

[经典面试题]排序数组中绝对值最小元素

[题目] 题目为: 有一个已经排序的数组(升序),数组中可能有正数.负数或0,求数组中元素的绝对值最小的数,要求,不能用顺序比较的方法(复杂度需要小于O(n)),可以使用任何语言实现 例如,数组{-20,-13,-4, 6, 77,200} ,绝对值最小的是-4. [分析] 给定数组是已经排好序的,且是升序,没有重复元素. 一个简单的思路,就是一次性遍历数组,求出数组的元素的绝对值的最小值,这样的时间复杂度为O(n). 但是,这样就浪费了题目的一个条件:数组是已经排好序的.所以,需要对原来的题目

求数字在排序数组中出现的次数

题目描述: 统计一个数字在排序数组中出现的次数. 输入: 每个测试案例包括两行: 第一行有1个整数n,表示数组的大小.1<=n <= 10^6. 第二行有n个整数,表示数组元素,每个元素均为int. 第三行有1个整数m,表示接下来有m次查询.1<=m<=10^3. 下面有m行,每行有一个整数k,表示要查询的数. 输出: 对应每个测试案例,有m行输出,每行1整数,表示数组中该数字出现的次数. 样例输入: 8 1 2 3 3 3 3 4 5 1 3 样例输出: 4 我做这道题,是先用二

如何求数字在排序数组中出现的次数

题目: 统计一个数字在排序数组中出现的次数. 通过折半查找, 找到首次出现的位置, 再找到末次出现的位置, 相减即可. 时间复杂度O(logn). 代码: /* * main.cpp * * Created on: 2014.6.12 * Author: Spike */ /*eclipse cdt, gcc 4.8.1*/ #include <stdio.h> #include <stdlib.h> #include <string.h> int GetFirstK

Excel 2007中进行日期混合排序

一位同事在使用Excel 2007创建表格的时候遇到一个问题:将Excel 2007中的一列日期按照年份从新 到旧的顺序来排列,与此同时还要在同一年份中的日期必须按照时间顺序来排列. 具体的解决办法如下,日期数据开始于A2单元格,将后面的B,C,D列分别命名为"年". "月"."日".然后在B2中输入"=YEAR(A2)",在C2中输入 "=MONTH(A2)",在D2中输入"=DAY(A2)&q

c语言-冒泡排序可以这样写吗,我只对结构体数组中某一个元素进行排序,然后交换

问题描述 冒泡排序可以这样写吗,我只对结构体数组中某一个元素进行排序,然后交换 struct troop { char name[1]; int a[3]; }tro[4]; void bubblesort(int a, int b, int c) { struct troop temp; int i, j; for (i=a; i { for (j=a+1; j { if (tro[j].a[c] > tro[i].a[c]) { temp = tro[j]; tro[j] = tro[i];

JS IOS/iPhone的Safari浏览器不兼容Javascript中的Date()问题如何解决_javascript技巧

var date = new Date('2016-11-11 11:11:11'); document.write(date); 最近在写一个时间判断脚本,需要将固定好的字符串时间转换为时间戳进行比较,在做的时候个人习惯使用chrome作为调试工具,代码基本完成之后,一切正常: 使用其他浏览器访问,好嘛,IE跟safari都不兼容,返回错误"Invalid Date". 想着估计是字符串格式的问题,改成'2016/11/11 11:11:11'再测试,结果正常,以为这样应该没问题了,