Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
1

Формат даты дней рождения контактов гугл

25.10.2013, 14:25. Просмотров 1140. Ответов 3
Метки нет (Все метки)

В этой теме в первом посте мною написан метод получения дней рождения контактов. Недавно заметил, что появилась галочка, которая позволяет при внесении дня рождения не указывать год рождения. Из-за этого у некоторых пользователей полезли ошибки, т.к. извлечение составляющих даты стало происходить не верно.
Java
1
2
String date = cursor.getString(2); //у меня приходит в формате YYYY-MM-DD
String[] strdate = date.split("-");//все удачно получалось
Теперь, если стоит галка "Не указывать год", опять же у меня формат даты получается такой --MM-DD
Я стал дату разбирать так:
Java
1
2
int ND=Integer.parseInt(date.substring(date.length()-2, date.length()));
int NM=Integer.parseInt(date.substring(date.length()-5, date.length()-3));
У меня все работает на ура. Но у других пользователей стали приходит ошибки. Например месяц у меня по номеру месяца минус 1 берет из массива наименование месяцев, но вдруг приходит ошибка, что мол длин массива 12, позиция -2 или 28, т.е. ерунда какая то.
Вопрос такой: как из даты рождения контактов ПРАВИЛЬНО взять ее составляющие.
СПАСИБО ЗАРАНЕЕ!
Я так полагаю, формат даты может быть разным, отсюда и ошибки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.10.2013, 14:25
Ответы с готовыми решениями:

Юбилей и День рождения в контактах Гугл
Приветствую. Подскажите, пожалуйста, для чего в Контактах есть тип события...

Изменить формат даты
Добра друзья. Не могу разобраться как поменять показ месяца сокращено. Что бы...

DatePickerDialog формат выбранной даты
Добрый день. Подскажите пожалуйста как изменить формат даты после выбора в...

Получение даты и прибавление к ней заданного количества дней
Через DateDialogPicker пользователь выбирает дату рождения: public void...

Формат даты или как получить часы, минуты, секунды
В текстовое поле выводится время . Вот так - String mytime =...

3
Netscape
374 / 361 / 52
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
25.10.2013, 14:44 2
мое скромное решение.
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
public class rr {
    
    public static void main(String[] args) {
        String date1 = "04-22";
        String date2 = "2000-10-10";
        parse(date1);
        parse(date2);
    }
 
    public static void parse(String d) {
        if (d != null) {
            Pattern p = Pattern.compile("^(19|20)\\d\\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$");
            Matcher m = p.matcher(d);
            final String format;
            if(m.matches()) {
                format = "yyyy-MM-dd";
            } else {
                format = "MM-dd";
            }
            
            SimpleDateFormat sdf = new SimpleDateFormat(format);
            try {
                Date date = sdf.parse(d);
                Calendar c = Calendar.getInstance();
                c.setTime(date);
                int day = c.get(Calendar.DAY_OF_MONTH);
                int month = c.get(Calendar.MONTH) + 1;
                int year = c.get(Calendar.YEAR);
                System.out.println(d + " - " + format);
                System.out.println(day+"/"+month+"/"+year);
            } catch (ParseException e) {
            }
            
        }
    }
 
}
1
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
26.10.2013, 21:49  [ТС] 3
Я попробовал разные форматы подставлять, везде ошибки, кроме тех что с тирешками. В чем ошибка, когда я извлекаю составляющие даты использую substring?

Добавлено через 13 минут
Короче, формат даты --11-23 не прокатил...жаль
В чем же собака порылась?
0
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
30.12.2013, 22:26  [ТС] 4
Опять столкнулся с проблемой разбора дат, точнее их сортировка в запросе sql
Пока мне встретились такие форматы:
YYYY-MM-DDTHH:mm:ss.ms+GMT
YYYY-MM-DD
--MM-DD

Все эти данные возвращает контейнер контактов гугла. Никак не придумаю как мне в запросе их обрабатывать?
Пока имел последние два варианта просто отрезал дни и месяцы используя метод substr, но появился еще один вариант. Теперь никак... помогите пожалуйста.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.12.2013, 22:26

На основе введенной даты рождения и текущей даты сообщить пользователю, сколько он прожил дней
3. Написать программу, которая на основе введенной даты рождения и текущей даты...

Количество дней от декущей даты до дня рождения
Помогите пожалуйста решить задачу. Мне нужно найти количество дней от декущей...

Посчитать количество дней с даты рождения до текущего момента!?
Необходимо посчитать количество дней с даты рождения до текущего момента!?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru