Я знаю, как создать массив строк или чисел, но как один создать массив дат:/массив дат в Java
ответ
таким же образом, что вы делаете для струнных и Int, вы просто разместить различные типы внутри:
Date [] dates = {
new Date(),
new Date()
};
Объявлен массив размера два с двумя датами.
Вы также можете инициализировать с нулевыми значениями:
Date [] dates = new Date[2];
Или добавить более значимые ценности:
Date [] dates = {
getDateFromString("25/11/2009"),
getDateFromString("24/12/2009")
};
....
public Date getDateFromString(String s) {
Date result = ...// parse the string set the value etc.
return result;
}
EDIT
... но в любом случае вы можете закончить то, что вы делали в методе getDateFromString?
Несомненно, я не изначально, потому что я хотел показать, что вы можете поместить все, что имеет тип «Дата».
Вы просто должны использовать SimpleDateFormate.parse() метод (унаследованный от DateFormat класса)
simpleDateFormatInstance.parse("24/12/2009"); // returns christmas 2009.
Вот полный рабочий пример:
import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.Date;
import static java.lang.System.out;
public class DateArrayTest {
private static final SimpleDateFormat dateFormat
= new SimpleDateFormat("dd/MM/yyyy");
private static final Date invalidDate = new Date(0);
// test creating a date from a string.
public static void main(String [] args) {
Date [] randomDates = {
fromString("01/01/2010"), // new year
fromString("16/09/2010"), // 200 yrs Mex indepence
fromString("21/03/2010"), // uhhmm next spring?
fromString("this/should/fail"), // invalid date.
};
for(Date date: randomDates) {
print(date);
}
}
/**
* Creates a date from the given string spec.
* The date format must be dd/MM/yyyy ie.
* 24 december 2009 would be: 24/12/2009
* @return invalidDate if the format is invalid.
*/
private static final Date fromString(String spec) {
try {
return dateFormat.parse(spec);
} catch(ParseException dfe) {
return invalidDate;
}
}
private static final void print(Date date) {
if(date == invalidDate) {
out.println("Invalid date");
} else {
out.println(dateFormat.format(date));
}
}
}
вы можете использовать массив java.util.Date
(API Docs являются here)
Date[] dates = new Date[] {
new Date(),
new Date(),
};
Вы можете создать ели массив любого типа объекта в Java - все ссылки и примитивные типы
Или вы могли бы использовать API и календарь класса Collections,
import java.util.*;
List<Calendar> dates = new ArrayList<Calendar>(5); // initial size
dates.add(Calendar.getInstance());
Вы можете рассмотреть (и это не реальность, но это своего рода), что примитивы - это что-то вроде этого (я добираюсь до реальности позже ... так что продолжайте читать):
int.7, int.42 (не компилируется), где int - класс (это не так), а 7 и 42 являются общедоступными статическими конечными переменными (они не являются).
и струнных являются чем-то вроде этого:.
Строка "Hello", String "Мир" (не компилируется), где строка является классом (это) и "Hello" и "мир". являются общедоступными статическими конечными переменными (они не являются).
Если моя фальшивка реальность была правда, что вы должны были бы иметь что-то вроде:
// again, won't compile.
public class int
{
public static final int 7 = new int(7);
public static final int 42 = new int(42);
private final ??? data;
public int(??? val)
{
data = val;
}
}
и
// also will not compile
public class String
{
public final String "Hello" = new String("Hello);
public final String "world" = new String("world);
private final ??? data;
public String(final ??? val)
{
data = val;
}
}
теперь вы сделать это массив, как (по-прежнему не компилируется):
int[] array = new int[] { int.7, int.42 };
String[] array = new String[] {String."Hello", String."world" };
В случае String моя альтернативная реальность была бы очень глупой, поскольку класс String не может быть kno w заранее каждую возможную String (для int это возможно).
Таким образом, мы получили бы избавиться от публичных статических конечных переменных в строку и сделать это вместо того, чтобы:
String[] array = new String[] { new String("Hello"), new String("world") };
Теперь к реальности:
Когда Java компилятор, когда он видит «Привет» или " world "он делает что-то похожее на" new String ("Hello") "- это немного умнее, так что если у вас есть" Hello "20 раз в файле, есть только одна копия (и некоторые другие вещи тоже).
Когда вы говорите:
new int[100]; you get an array of 100 ints all set to 0.
new String[100]; you get an array of 100 Strings all pointing to null.
new Data[100]; you get 100 Dates all pointing to null.
Поскольку строка и дата из них указывают на нулевое значение необходимо выделить новый объект для каждого из них. Причина, по которой вам не нужно говорить «новый» со String, это то, что компилятор относится к нему специально. Причина, по которой вам не нужно говорить «new» с int, состоит в том, что это примитив, а не объект.
Итак, простой ответ на ваш вопрос, вы должны выделить новую дату для каждого элемента массива :-)
вы имели в виду ввода массив dates.This коды поможет ..
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Scanner;
public class Datinput {
public static void main(String args[]) {
int n;
ArrayList<String> al = new ArrayList<String>();
Scanner in = new Scanner(System.in);
n = in.nextInt();
String da[] = new String[n];
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
sdf.setLenient(false);
Date date[] = new Date[n];
in.nextLine();
for (int i = 0; i < da.length; i++) {
da[i] = in.nextLine();
}
for (int i = 0; i < da.length; i++) {
try {
date[i] = sdf.parse(da[i]);
} catch (ParseException e) {
e.printStackTrace();
}
}
in.close();
}
}
Попробуйте это ...... :) –
- 1. Объединить массив дат и суммовые значения в месяц в Java
- 2. Создайте массив дат и количество этих дат
- 3. Массив дат матчей мой диапазон дат
- 4. Создать массив дат в Javascript
- 5. Преобразование Дат файла в массив
- 6. Разделить строки в массив дат
- 7. Вставить массив дат в MySQL
- 8. массив дат с запросом
- 9. Диапазон дат в Java
- 10. Создание дат в Java
- 11. Сравнение дат в Java
- 12. Сравнение дат в java
- 13. Обработка дат в Java
- 14. Сравнение дат в Java
- 15. Сравнение дат в Java
- 16. PHP-массив дат
- 17. Как отсортировать массив дат?
- 18. PHP Диапазон дат, массив
- 19. Углеродный массив прошлых дат
- 20. Как переупорядочить массив дат?
- 21. Java - Создание списка дат
- 22. Элегантный способа генерировать массив случайных дат в течение двух дат
- 23. Возврат массив дат строк для диапазона дат в PHP 5.2
- 24. Как отсортировать массив дат в порядке дат, используя php
- 25. Poupulate массив Javascript отдельных дат
- 26. F # генерирует последовательность/массив дат
- 27. Методы устаревших дат в Java?
- 28. Вычитание двух дат в Java
- 29. Сумма двух дат в Java
- 30. Сравнение двух дат в Java
Вы можете написать некоторый псевдокод того, что вы хотите. Возможно, Date [] = new Date [] {'2009-01-01', '2009-02-01'}, таким образом, мы можем лучше ответить на этот вопрос. –