Об игре
Новости
Войти
Регистрация
Рейтинг
Форум
17:53
4121
 online
Требуется авторизация
Вы не авторизованы
   Форумы-->Форум для внеигровых тем-->

АвторНужна помощь в Java.
Кто-либо, кто довольно хорошо разбирается в Java, нужна помощь.

Нужно написать программу, которая будет вычислять кол-во дней между заданной датой и сегодняшним днём.

ПРИМЕЧАНИЕ: Программа должна быть абсолютно примитивной, без использования библиотеки. Только for, if и подобное)
Если сам не можешь, значит тебе 2 поставят.
Такая банальщина же.
Ultra_xerox в помощь!
для Blade_Of_Time:
Какой класс для хранения даты?
для FireSwarm:
видимо, вводится строка с датой в формате 17.06.2015, после этого ее надо разделить на числа. Программа лёгкая, но я знаю паскаль, с явой не дружу
для Типичный Лесник:
Видимо-невидимо это не разговор. Ждём ТС.
Как и зачем определять текущую дату без библиотек я не знаю. Ввод данных организуй самостоятельно, думаю не велика проблема. А так вот:

package test;

import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;

public class Test {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {

Test t = new Test();
System.out.println(t.getDayCount(new SimpleDateFormat("dd.MM.yyyy").format((new GregorianCalendar()).getTime())) - t.getDayCount("17.05.2015"));
}

public int getDayCount(String date_string) {

int year = Integer.parseInt(date_string.split("\\.")[2]);
int month = Integer.parseInt(date_string.split("\\.")[1]);
int day = Integer.parseInt(date_string.split("\\.")[0]);

int day_in_year = year * 365 + year/4; // Дней в году + количество високосных лет.
day_in_year -= ((2032 - year) % 4 == 0 && month < 3 ? 1 : 0); // Если год високосный и 29-го февраля не было, вычтем его.

int day_in_month = getDayInMonth(month); // Считает количество дней в законченных месяцах.

return day_in_year + day_in_month + day;
}

private int getDayInMonth(int month) {

int day_count = 0;

for (int i = 1; i < month; i++) {
if (i == 2) {
day_count += 28;
continue;
}

if (i % 2 == 1) {
day_count += 31;
continue;
}

if (i % 2 == 1) {
day_count += 30;
}

}

return day_count;
}

}
Example input:

15 2 1995 - corresponds to 15th February 1995.

Example output:

7426 days (assuming today is 16.06.2015)

You are not allowed to use any java libraries for this assignment, except for new Date() to find the current date.

Ну в общем, такова проблема. Библиотеку использовать нельзя)
Библиотеку использовать нельзя)
Значит для определения текущей даты нужно использовать куррент тайм миллисеконд. Подробней с планшета не напишу.
except for new Date() to find the current date.

И в чем проблема?

У вас же тут буржуйским по голубому написано, что использовать объект класса Data, который, судя по всему, лежит в стандартной библиотеке, можно, как раз для получения текущей даты.
Довольно хорошо разбирается в Java
Нужно написать программу, которая будет вычислять кол-во дней между заданной датой и сегодняшним днём.

Ппц.
11
ага. Это школьная задача в паскале. Сам джабу не знаю. Уж сорри.
У вас же тут буржуйским по голубому написано, что использовать объект класса Data, который, судя по всему, лежит в стандартной библиотеке, можно, как раз для получения текущей даты.
Ну в стандартной, но в библиотеке, а не в ядре. Если так, то определение текущей даты это вообще не то что не проблема, а даже не задача и не операция. Объявление
Date d1 = new Date();
уже содержит и дату текущую, и время. У этого класса есть конструктор, принимающий год, месяц и день. Т.е. задача фактически сводится к выделению из входящей строки дня, месяца и года, а всё остальное сводится к умению использовать java.util.Calendar. А если его использовать не умеешь, то можно высчитать разницу в миллисекундах и дальше дело техники.

Первоначальная интерпретация поинтереснее была.
К списку тем
2007-2025, онлайн игры HeroesWM