powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Количество дней после 1900 года
12 сообщений из 12, страница 1 из 1
Количество дней после 1900 года
    #34298086
Galogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, есть необходимость вычислить количество дней прошедших от 1900 года на конкретную дату. Существет ли, какая функция подсчета этого значения?
...
Рейтинг: 0 / 0
Количество дней после 1900 года
    #34298119
Фотография Ruslan.Isbarov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первое что пришло на ум. Прошу строго не судить :)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
/* 01.01.1900 00:00 */
Calendar calendar = Calendar.getInstance();
calendar.set( 1900 ,  1 ,  1 ,  0 ,  0 ,  0 );

Date today =  new  Date();

 long  msSince = today.getTime() - calendar.getTime().getTime();
 long  days = msSince / ( 1000  *  60  *  60  *  24 );

System.out.println("days = " + days);
...
Рейтинг: 0 / 0
Количество дней после 1900 года
    #34298149
Фотография Ruslan.Isbarov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Патч:

Код: plaintext
1.
 long  msSince = today.getTime() - calendar.getTimeInMillis();
...
Рейтинг: 0 / 0
Количество дней после 1900 года
    #34298310
fjord
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Ruslan.Isbarov и еще если первое января 1900го, то
Код: plaintext
calendar.set( 1900 ,  0 ,  0 ,  0 ,  0 ,  0 );
:)
...
Рейтинг: 0 / 0
Количество дней после 1900 года
    #34298337
Galogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДА.. Январь нулевой месяц :)

Ruslan.Isbarov, спасибо за наводку. Буду копать дальше. У меня не сходится на 2 дня с представлениями системы. По мнению HP 1 января 2007 года - это 39083 день, а получается на 2 дня меньше... что-то где-то не досчитали...

Всем спасибо.
...
Рейтинг: 0 / 0
Количество дней после 1900 года
    #34298360
Фотография Ruslan.Isbarov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fjord2 Ruslan.Isbarov и еще если первое января 1900го, то
Код: plaintext
calendar.set( 1900 ,  0 ,  0 ,  0 ,  0 ,  0 );
:)
Блин, точняк.
...
Рейтинг: 0 / 0
Количество дней после 1900 года
    #34298407
Фотография Ruslan.Isbarov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GalogenУ меня не сходится на 2 дня с представлениями системы. По мнению HP 1 января 2007 года - это 39083 день, а получается на 2 дня меньше... что-то где-то не досчитали...

Всем спасибо.
Думаю, просто не досчитываем пару дней - текущий день и день 01.01.1900

с 01.01.1900 по 01.01.2007: прошло 107 лет из которых 27 високосных годов (1900, 1904, 1908, 1912, 1916, 1920, 1924, 1928, 1932, 1936, 1940, 1944, 1948, 1952, 1956, 1960, 1964, 1968, 1972, 1976, 1980, 1984, 1988, 1992, 1996, 2000, 2004). Т.е.

80 * 365 + 27 * 366 = 39082 дней + 1 текущий день :)
...
Рейтинг: 0 / 0
Количество дней после 1900 года
    #34299116
Galogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
Calendar c = Calendar.getInstance();
         Calendar calendar = Calendar.getInstance();
         calendar.set( 1900 ,  0 ,  1 ,  0 ,  0 ,  0 );
         c.set(Year, Month -  1 /* номер месяца -1*/, Day,  0 ,  0 ,  0 );
          long  msSince = c.getTimeInMillis() - calendar.getTimeInMillis();
          long  days = (msSince / ( 1000  *  86400 ));

Считаем в днях... я не совсем понимаю причем тут года... тем более високосные,
msSince - это кол-во миллисекунд за это время... делим на 1000 * 86400, получаем количество дней... года високосные никак не влияют... или я просто непонимаю чего то
...
Рейтинг: 0 / 0
Количество дней после 1900 года
    #34299533
sendoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GalogenПо мнению HP 1 января 2007 года - это 39083 день, а получается на 2 дня меньше... что-то где-то не досчитали...
Всем спасибо.
HP ошибается. :)
Проводя те же вычисления, что и Ruslan.Isbarov, но учтя, что 1900 - невисокосный год, получим, что 1 января 2007 года - 39082 день.
...
Рейтинг: 0 / 0
Количество дней после 1900 года
    #34299578
sendoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
        Calendar c = Calendar.getInstance();
        Calendar calendar = Calendar.getInstance();
        calendar.set( 1900 ,  0 ,  1 ,  0 ,  0 ,  0 );
        c.set( 2007 ,  0 ,  1 ,  0 ,  0 ,  0 );
         long  msSince = c.getTimeInMillis() - calendar.getTimeInMillis();
         long  days = (msSince / ( 1000  *  86400 ));
        System.out.println(days);
А этот код выводит правильный результат - 39081.
...
Рейтинг: 0 / 0
Количество дней после 1900 года
    #34299727
Galogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
этот код выводит результат - 39081. Поставлю просто +2, птому как ЭТО происходит всегда... и в комментах напишу как HP /*Hack*/
...
Рейтинг: 0 / 0
Количество дней после 1900 года
    #34299776
Я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я
Гость
Че за ХРшная система?
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Количество дней после 1900 года
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]