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

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

Войти
Регистрация
Восстановить пароль
 
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
#1

Количество дней между двумя датами - Android

16.02.2013, 22:20. Просмотров 850. Ответов 6
Метки нет (Все метки)

под спойлером метод определения:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    int[] d0 = new int[] {2013,2,17,0,0,0};
    int[] d1 = new int[] {2013,2,17,23,59,59};
 
public static int getQuantDays(int[] d0, int[] d1){
    final Calendar c0 = getCalendar();
    final Calendar c1 = getCalendar();
 
    c0.set(d0[0], d0[1]-1, d0[2], d0[3], d0[4], d0[5]);
    c1.set(d1[0], d1[1]-1, d1[2], d1[3], d1[4], d1[5]);
        
        long ldate0 = c0.getTimeInMillis();                
        long ldate1 = c1.getTimeInMillis();        
        float hr0 = (float)ldate0/3600000;        
        float hr1 = (float)ldate1/3600000;        
        float days0 = (float)hr0/24;        
        float days1 = (float)hr1/24;           
 
        int dayDiff  = (int)FloatMath.floor(days1 - days0);    
        
        return res;
    }

результат 1 день. Так получается из-за округления. Как сделать, что бы не округлял? Спасибо.

PS
метод getCalendar
Кликните здесь для просмотра всего текста
Java
1
2
3
4
    public static Calendar getCalendar(){
        TimeZone tz = TimeZone.getDefault();
        return Calendar.getInstance(tz);
    }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
16.02.2013, 22:27     Количество дней между двумя датами #2
зачем все эти расчеты и где res рассчитывается непонятно.
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
16.02.2013, 22:29  [ТС]     Количество дней между двумя датами #3
Цитата Сообщение от V0v1k Посмотреть сообщение
зачем все эти расчеты и где res рассчитывается непонятно.
res это я ошибся, должно быть return dayDiff;

А что значить зачем эти расчеты? Как по другому определить? Научите
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
16.02.2013, 22:34     Количество дней между двумя датами #4
мне показалось что вы в конце используете ldate0 и ldate1...
в общем проще сначала сделать ldate1 - ldate0 , и тогда уже делить нужно только 1 число а не оба, а округление естественно из-за приведения к инту.
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
16.02.2013, 22:44  [ТС]     Количество дней между двумя датами #5
Цитата Сообщение от V0v1k Посмотреть сообщение
мне показалось что вы в конце используете ldate0 и ldate1...
в общем проще сначала сделать ldate1 - ldate0 , и тогда уже делить нужно только 1 число а не оба, а округление естественно из-за приведения к инту.
округление происходит раньше. К инту это для удобства т.к. floor возвращает целую часть, что мне собственно и требуется. Округляется вот тут: (float)ldate0/3600000;
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
16.02.2013, 22:46     Количество дней между двумя датами #6
(float)ldate0/3600000f
(float)ldate0/3600000.0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2013, 22:58     Количество дней между двумя датами
Еще ссылки по теме:

Android Список с двумя полями
Android Обмен сообщениями между двумя приложениями по сети
Android Передача данных между двумя телефонами Android + Content Provider
ListView с датами Android
Получение даты и прибавление к ней заданного количества дней Android

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

Или воспользуйтесь поиском по форуму:
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
16.02.2013, 22:58  [ТС]     Количество дней между двумя датами #7
Цитата Сообщение от V0v1k Посмотреть сообщение
(float)ldate0/3600000f
(float)ldate0/3600000.0
Волшебная буква f , кто бы мог подумать
СПАСИБО
Yandex
Объявления
16.02.2013, 22:58     Количество дней между двумя датами
Ответ Создать тему
Опции темы

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