Форумы-->Форум для внеигровых тем-->
Автор | Нужна помощь в 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. А если его использовать не умеешь, то можно высчитать разницу в миллисекундах и дальше дело техники.
Первоначальная интерпретация поинтереснее была. |
К списку тем
|