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

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

16.02.2013, 22:20. Просмотров 1002. Ответов 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);
    }

http://www.cyberforum.ru/android-dev/thread882426.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.02.2013, 22:20
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Количество дней между двумя датами (Программирование Android):

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

Чат между двумя приложениями
Здравствуйте, подскажите как сделать чат между двумя разными приложениями...

ImageView - переключить между двумя катринками
При запуске приложения появляется start.Когда я на него нажимаю он исчезает и...

Обмен сообщениями между двумя приложениями по сети
Всем добрый день! Возникла необходимость в реализации самого простейшего...

Вставить динамически созданный TableRow между двумя другими
Динамически создаю TableRow. Но мне нужно не добавлять эту строку к...

6
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
16.02.2013, 22:27 #2
зачем все эти расчеты и где res рассчитывается непонятно.
0
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
16.02.2013, 22:29  [ТС] #3
Цитата Сообщение от V0v1k Посмотреть сообщение
зачем все эти расчеты и где res рассчитывается непонятно.
res это я ошибся, должно быть return dayDiff;

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

Передача данных между двумя телефонами Android + Content Provider
Добрый день. Подскажите, пожалуйста, есть телефон на нём установлена...

Количество дней между двумя датами
Хочу спросить кто знает как найти количество дней между двумя датами. ПРИМЕР...

Количество дней между двумя датами
Даны две даты текущего года. Сосчитать количество дней между этими двумя...

Количество дней между двумя датами
Здравствуйте, у меня есть неполный код от задачи: Найти количество дней между...


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

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

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