栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何按即将到来的生日顺序获取联系人?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何按即将到来的生日顺序获取联系人?

我以相反的方式进行了此操作-直接选择存储生日的数据表。

private static final int UPCOMING_COUNT = 10;public static List<BContact> upcomingBirthday(Context ctx) {    String today = new SimpleDateFormat("MM-dd").format(new Date()); List<BContact> firstPart = upcomingBirthday(ctx, today, "12-31", UPCOMING_COUNT);    if (firstPart.size() < UPCOMING_COUNT) {        firstPart.addAll(upcomingBirthday(ctx, "01-01", today, UPCOMING_COUNT - firstPart.size()));    }    return firstPart;}public static List<BContact> upcomingBirthday(Context ctx, String fromDate, String toDate, int rows) {  Uri dataUri = ContactsContract.Data.CONTENT_URI;  String[] projection = new String[] { ContactsContract.Contacts.DISPLAY_NAME,    ContactsContract.CommonDataKinds.Event.CONTACT_ID, ContactsContract.CommonDataKinds.Event.START_DATE };  Cursor c = ctx.getContentResolver().query(       dataUri,       projection,        ContactsContract.Data.MIMETYPE + "= ? AND " +        ContactsContract.CommonDataKinds.Event.TYPE + "=" + ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY +        " AND substr(" + ContactsContract.CommonDataKinds.Event.START_DATE + ",6) >= ?" +        " AND substr(" + ContactsContract.CommonDataKinds.Event.START_DATE + ",6) <= ?" ,       new String[] {ContactsContract.CommonDataKinds.Event.CONTENT_ITEM_TYPE, fromDate, toDate},        "substr("+ ContactsContract.CommonDataKinds.Event.START_DATE +",6)");  List<BContact> result = new ArrayList<BContact>();  int i=0;  while (c.moveTonext() && i<rows) {      result.add(new BContact(c.getString(0), c.getString(1), c.getString(2)));      i++;  }  c.close();  return result;

}

SELECT被两次调用-从今天到12/31的一次呼叫,从01/01到今天的第二次呼叫。我限制返回的行数为10,但这不是必需的。

编辑:
我发现这不适用于所有Android手机,因为生日日期以许多不同的格式存储。因此,您必须加载所有生日(无序),对其进行解析并在内存中进行排序。#失败



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/569925.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号