Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
SAVA93
1 / 1 / 0
Регистрация: 24.12.2011
Сообщений: 86
#1

Не могу найти правильную разницу между датами - Программирование Android

29.08.2013, 01:03. Просмотров 694. Ответов 5
Метки нет (Все метки)

Почему то показывает все время неправильные цифры... посылаю методу стринг с датой и временем и хочу найти разницу между текущим временем и тем что посылается...

Кликните здесь для просмотра всего текста
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
private static String divideStringToGetTime(String data) {
        String hour = data.substring(9, 11);
        String minute = data.substring(11, 13);
        String seconds = data.substring(13, 15);
        String year = data.substring(0, 4);
        String month = data.substring(4, 6);
        String day = data.substring(6, 8);
 
        Calendar notificationDate = Calendar.getInstance();
        Calendar currentDate = Calendar.getInstance();
        notificationDate.set(Integer.parseInt(year), 
                Integer.parseInt(month), 
                Integer.parseInt(day), 
                Integer.parseInt(hour), 
                Integer.parseInt(minute),
                Integer.parseInt(seconds));
        
        long milis1 = currentDate.getTimeInMillis();
        long milis2 = notificationDate.getTimeInMillis();
        long diff = milis2 - milis1;
        
        long diffSeconds = TimeUnit.MILLISECONDS.toSeconds(diff);
        long diffMinutes = TimeUnit.MILLISECONDS.toMinutes(diff);
        long diffHours = TimeUnit.MILLISECONDS.toHours(diff);
        long diffDays = TimeUnit.MILLISECONDS.toDays(diff);
        
        if(diffDays == 0)
        {
            if(diffHours== 0)//few seconds ago
                if(diffMinutes == 0){
                    data = "A few seconds ago.";
                }
                else {// few minutes ago
                    data = diffMinutes +  " minutes ago.";
                }
        }
        else if(diffHours >0 && diffHours <24){
            data = diffHours + "hours "+diffHours%24 + "minutes ago.";
        }
        else if(diffDays == 1){
            data = "Yesterday at " + hour + ":" + minute;
        }
        else if(diffDays == 2){
            data = "2 days ago at" + hour + ":" + minute;
        }
        else if(diffDays == 3){
            data = "3 days ago at " + hour + ":" + minute;
        }
        else if(diffDays == 4){
            data = "4 days ago at " + hour + ":" + minute;
        }
        else if(diffDays == 5){
            data = "5 days ago at " + hour + ":" + minute;
        }
        else if(diffDays == 6){
            data = "6 days ago at " + hour + ":" + minute;
        }
        else if(diffDays == 7){
            data = "1 week ago at " + hour + ":" + minute;
        }
        else if(diffDays>7 && diffDays<28){
            data = (diffDays / 7) + " weeks ago at " + hour + ":" + minute;
        }
        else{
            data = day + "/" + month + "/" + year + " "+hour + ":" + minute;
        }
        return data;
    }

выдает неправильную разницу говорит что разница равна 30 дням 4 неделям и так далее вообщем все переменные по максимуму
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.08.2013, 01:03     Не могу найти правильную разницу между датами
Посмотрите здесь:

Разница между двумя датами - Программирование Android
Вообщем проблема такая получаю 1 дату start = System.currentTimeMillis() через некоторое время получаю 2 дату finish =...

Количество дней между двумя датами - Программирование Android
под спойлером метод определения: int d0 = new int {2013,2,17,0,0,0}; int d1 = new int {2013,2,17,23,59,59}; public static...

Проясните разницу между CompatActivity, Support Library, SDK version и некоторыми другими параметрами - Программирование Android
Доброго дня. Путаюсь и не до конца понимаю смысл некоторых параметров проектов Android, типов классов, версий библиотек и других...

Как определить правильную ориентацию фотографии? - Программирование Android
На одном устройстве правильная ориентация фото получается при её повороте (Camera.Parameters::setRotation(int rotation) на 90 градусов, на...

ListView с датами - Программирование Android
Есть дата рождения(выбирается пользователем через DialogDatePicker), отталкиваясь от нее нужно рассчитать на перед расписание прививок по...

НЕ могу найти ошибку! - Программирование Android
Вот скрин кода: на экране два текста &quot;ДАТА&quot; и &quot;ВРЕМЯ&quot; по нажатию на &quot;дата&quot; должен выходить диалог &quot;ДАТЫ&quot;, а выходит диалог времени т.е жму...

Не могу найти ошибку - Программирование Android
Выдает ошибку (unfortunately,*** has stopped) нз что делать вот логи 07-16 09:37:50.620: W/Resources(925): Converting to string:...

Не могу найти ошибку - Программирование Android
Здравствуйте! Помогите, пожалуйста, найти ошибку в коде: вот QuizGameActivity.java: package com.androidbook.triviaquiz; ...

не могу найти ошибку - Программирование Android
я пытаюсь запустить звуковой файл в приложении, при открытии новой страницы(layout)... вот мой код: package by.example.goder; ...

не могу найти ошибку! - Программирование Android
вот уже довольно длинный промежуток времени пытаюсь исправить работу приложения...ничего не получается...помогите пожалуйста,если не...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
29.08.2013, 01:34     Не могу найти правильную разницу между датами #2
ну, все правильно, 30 дней они же 4 недели и так далее.
SAVA93
1 / 1 / 0
Регистрация: 24.12.2011
Сообщений: 86
29.08.2013, 13:13  [ТС]     Не могу найти правильную разницу между датами #3
V0v1k, так если разница несколько секунд он все равно мне показывает что несколько дней, недель, часов, минут
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
29.08.2013, 13:38     Не могу найти правильную разницу между датами #4
подебагайте, может дату парсите неправильно, попробуйте SimpleDateFormat
SAVA93
1 / 1 / 0
Регистрация: 24.12.2011
Сообщений: 86
29.08.2013, 13:54  [ТС]     Не могу найти правильную разницу между датами #5
V0v1k, спасибо ошибку нашел но она какая то невнятная... не могли бы вы объяснить аномалию %)
я до этого писал код в шапке там работает точно правильно эта часть
Java
1
String month = data.substring(4, 6);
а вот эта почему то прибавляет именно к месяцу единицу, то есть если сейчас август то он показывает сентябрь...
Java
1
2
3
4
5
6
7
8
Calendar notificationDate = Calendar.getInstance();
        Calendar currentDate = Calendar.getInstance();
        notificationDate.set(Integer.parseInt(year), 
                Integer.parseInt(month),// вот здесь почему то добавляет единицу. 
                Integer.parseInt(day), 
                Integer.parseInt(hour), 
                Integer.parseInt(minute),
                Integer.parseInt(seconds));
и чтобы получилось правильно приходить отнимать ее ( а это как то ненормально чтоли) подскажите в чем прикол)
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
29.08.2013, 15:26     Не могу найти правильную разницу между датами #6
смотрите документацию
The month value is 0-based, so it may be clearer to use a constant like JANUARY.
здесь месяцы отсчитываются с 0.
Yandex
Объявления
29.08.2013, 15:26     Не могу найти правильную разницу между датами
Ответ Создать тему
Опции темы

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