Tôi biết cách tạo một chuỗi các chuỗi hoặc số nguyên, nhưng làm thế nào để tạo một mảng ngày:/Mảng ngày tháng trong Java
Trả lời
Giống như cách bạn làm cho Chuỗi và Int, bạn chỉ cần đặt các loại khác nhau bên trong:
Date [] dates = {
new Date(),
new Date()
};
Khai báo một mảng có kích thước hai với hai ngày.
Bạn cũng có thể khởi tạo với giá trị null:
Date [] dates = new Date[2];
Hoặc thêm giá trị quan trọng hơn:
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
... nhưng là có anyway bạn có thể kết thúc những gì bạn đang làm trong phương thức getDateFromString?
Chắc chắn, ban đầu tôi không hiển thị vì bạn có thể đặt bất kỳ thứ gì thuộc loại "Ngày" ở đó.
Bạn chỉ cần sử dụng SimpleDateFormate.parse() phương pháp (thừa hưởng từ DateFormat lớp)
simpleDateFormatInstance.parse("24/12/2009"); // returns christmas 2009.
Dưới đây là một mẫu làm việc hoàn chỉnh:
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));
}
}
}
bạn có thể sử dụng một loạt các java.util.Date
(tài liệu API là here)
Date[] dates = new Date[] {
new Date(),
new Date(),
};
Bạn có thể cre ăn một mảng của bất kỳ loại đối tượng trong java - tất cả các tài liệu tham khảo và các loại nguyên thủy
Hoặc bạn có thể sử dụng bộ sưu tập API và Lịch lớp,
import java.util.*;
List<Calendar> dates = new ArrayList<Calendar>(5); // initial size
dates.add(Calendar.getInstance());
Bạn có thể xem xét (và đây không phải là thực tế, nhưng nó loại của các công trình theo cách này) mà nguyên thủy là một cái gì đó như thế này (tôi nhận được để thực tế sau này ... vì vậy hãy đọc):
int.7, int.42 (sẽ không biên dịch) trong đó int là một lớp (nó không phải là) và 7 và 42 là biến cuối cùng tĩnh công khai (chúng không phải là).
và Strings là một cái gì đó như thế này:.
String "Xin chào", String "thế gian" (sẽ không biên dịch), nơi String là một lớp (đó là) và "Hello" và "thế giới". là các biến cuối cùng tĩnh công khai (chúng không phải là).
Nếu thực tế giả của tôi đã thành sự thật, bạn sẽ cần phải có một cái gì đó như:
// 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;
}
}
và
// 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;
}
}
bây giờ bạn làm cho một một mảng tương tự (vẫn sẽ không biên dịch):
int[] array = new int[] { int.7, int.42 };
String[] array = new String[] {String."Hello", String."world" };
Trong trường hợp String, thực tế thay thế của tôi sẽ rất ngớ ngẩn vì không thể cho lớp String thành kno w trước mỗi chuỗi có thể duy nhất (cho int nó là có thể).
Vì vậy, chúng ta sẽ thoát khỏi các biến thức public static trong String và làm điều này thay vì:
String[] array = new String[] { new String("Hello"), new String("world") };
Bây giờ với thực tế:
Khi trình biên dịch java, khi nó thấy "Hello" hay " thế giới "nó làm một cái gì đó tương tự như" chuỗi mới ("Hello") "- nó là một chút thông minh hơn để nếu bạn có" Xin chào "20 lần trong một tập tin mà chỉ có một bản sao (và một số những thứ khác nữa).
Khi bạn nói:
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.
Kể từ khi String và những ngày đang trỏ null bạn cần phải phân bổ một đối tượng mới cho mỗi một. Lý do mà bạn không cần phải nói "mới" với String là xử lý trình biên dịch là đặc biệt. Lý do bạn không phải nói "mới" với int là nó là nguyên thủy thay vì một đối tượng.
Vì vậy, câu trả lời dễ dàng cho câu hỏi của bạn, bạn cần phải phân bổ một ngày mới cho mỗi phần tử của mảng :-)
Ý của bạn là nhập một mảng của dates.This mã sẽ giúp ..
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();
}
}
Hãy thử cách này ...... :) –
- 1. Điều khiển ngày tháng và lịch Java
- 2. Lấy số ngày trong tháng hiện tại trong Java
- 3. ngày foreach trong tháng
- 4. Ngày tháng trong Hibernate
- 5. Chuyển đổi chuỗi thành Ngày tháng trong java
- 6. Tính toán sự khác biệt về ngày tháng trong Java
- 7. Làm thế nào để bạn trừ Ngày tháng trong Java?
- 8. So sánh các chuỗi ngày tháng trong Java
- 9. Phân chia các Mảng Ngày dựa trên Tháng hoặc Năm
- 10. Php mảng chứa tất cả các ngày tháng hiện tại
- 11. Cách nhận ngày trong tháng?
- 12. Tính số ngày trong tháng
- 13. Tìm ngày tháng trong chuỗi
- 14. Ngày tháng :: Calc - định dạng ngày và tháng
- 15. định dạng ngày tháng jquery ui định dạng ngày tháng
- 16. Nhận chi tiết ngày (ngày, tháng, năm) trong GWT
- 17. Định dạng ngày trong ngày, ngày tháng, năm
- 18. Java dạng ngày chuyển đổi - nhận sai tháng
- 19. Xác thực định dạng ngày tháng Regex trên Java
- 20. Cái nào là bộ đếm ngày tháng Java tốt nhất ..?
- 21. JavaScript: nhận được mảng tên ngày của ngày cụ thể (tháng/năm)
- 22. Định dạng ngày tháng PHPExcel
- 23. Django: Nhóm theo ngày (ngày, tháng, năm)
- 24. Lấy ngày tháng đầu tiên và ngày cuối cùng của tháng trước đó trong C#
- 25. Groovy/Grails ngày lớp - nhận ngày trong tháng
- 26. Tạo ngày giờ trong Rails bằng tháng, ngày và năm
- 27. Lấy Năm/Tháng/Ngày từ một ngày giờ trong php?
- 28. Lưu trữ ngày không đầy đủ trong trường ngày tháng
- 29. Cách so sánh ngày tháng trong Django
- 30. Ngày cuối cùng của tháng trong .NET
bạn có thể viết một số mã giả của những gì bạn muốn. Có lẽ Ngày [] = Ngày mới [] {'2009-01-01', '2009-02-01'}, theo cách này chúng ta có thể trả lời câu hỏi này tốt hơn. –