sé cómo crear una matriz de cadenas o enteros, pero ¿cómo se puede crear una serie de fechas:/matriz de fechas en Java
Respuesta
De la misma manera lo hace para Cuerdas y Int, que acaba de colocar diferentes tipos inside:
Date [] dates = {
new Date(),
new Date()
};
Se declaró una matriz de tamaño dos con dos fechas.
También puede inicializar con valores nulos:
Date [] dates = new Date[2];
o añadir valores más significativos:
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
... pero de todos modos hay que puede terminar lo que estaba haciendo en el método getDateFromString?
Claro, no lo hice inicialmente porque mi punto era mostrar, que podía poner cualquier cosa del tipo "Fecha" allí.
sólo hay que utilizar el SimpleDateFormate.parse() método (heredado de DateFormat clase)
simpleDateFormatInstance.parse("24/12/2009"); // returns christmas 2009.
He aquí una muestra de trabajo completo:
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));
}
}
}
puede utilizar una gran variedad de java.util.Date
(documentos de la API son here)
Date[] dates = new Date[] {
new Date(),
new Date(),
};
Puedes crear comió una matriz de cualquier tipo de objeto en java - toda referencia y tipo primitivo
O puede utilizar la API y el calendario de clases Colecciones,
import java.util.*;
List<Calendar> dates = new ArrayList<Calendar>(5); // initial size
dates.add(Calendar.getInstance());
Puede tener en cuenta (y esto no es la realidad, pero en cierto modo de obras de esta manera) que las primitivas son algo como esto (me hago realidad más adelante ... así que sigue leyendo):
int.7, int.42 (no compilará) donde int es una clase (no lo es) y 7 y 42 son variables finales estáticas públicas (no lo son).
y que las cadenas son algo como esto:.
cadena "Hola", String "mundo" (no se compilará) Donde cadena es una clase (es) y "Hola" y "mundo". son variables finales estáticas públicas (no lo son).
Si mi falsa realidad fuera cierto que tendría que tener algo como:
// 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;
}
}
y
// 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;
}
}
ahora hacer una una matriz como (todavía no se compilará):
int[] array = new int[] { int.7, int.42 };
String[] array = new String[] {String."Hello", String."world" };
En el caso de String mi realidad alternativa sería muy tonta ya que es imposible para la clase String kno w de antemano cada cadena posible (para int es posible).
Así que se desharía de las variables static final públicas en cadena y hacer esto en su lugar:
String[] array = new String[] { new String("Hello"), new String("world") };
ahora a la realidad:
Cuando el compilador de Java, cuando se ve "Hola" o " world "hace algo similar a" new String ("Hello") "- es un poco más inteligente por lo que si tiene" Hello "20 veces en un archivo, solo hay una copia (y algunas otras cosas también).
Cuando dicen:
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.
ya que la cadena y los Fecha apuntan a nulo es necesario asignar un nuevo objeto para cada uno. La razón por la que no tiene que decir "nuevo" con String es que el compilador trata especialmente. La razón por la que no tiene que decir "nuevo" con int es que es una primitiva en lugar de un objeto.
Por lo tanto, la respuesta fácil a su pregunta es, usted tiene que asignar una nueva fecha para cada elemento de la matriz :-)
Quizás quiso decir la introducción de una serie de dates.This código ayudaría ..
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();
}
}
Prueba esto ...... :) –
- 1. Matriz de fechas entre dos fechas
- 2. Rango de fechas en una matriz, ruby
- 3. ¿Cómo restar fechas en Java?
- 4. Suma dos fechas en Java
- 5. ¿Cómo comparar fechas en Java?
- 6. Comparar dos fechas en Java
- 7. Comparación de fechas utilizando Java
- 8. java rompecabezas diferencia de fechas
- 9. Suma y resta de fechas en Java
- 10. Controles de fechas y calendarios en Java
- 11. Cálculos simples de fechas en Java
- 12. Comparando cadenas de fechas en Java
- 13. F # genera una secuencia/matriz de fechas
- 14. Java Calendario regresa diferentes fechas
- 15. Generador de lenguaje natural para fechas (Java)
- 16. Java: Rango de fechas mín. Y máx.
- 17. Buscando en rangos de fechas con Lucene en Java?
- 18. matriz final en Java
- 19. matriz inmutable en Java
- 20. Comprobación de fechas de caducidad de certificados en java keystore
- 21. Matriz de interfaz en Java
- 22. Crear una matriz o lista de todas las fechas entre dos fechas
- 23. ¿Cómo iterar por el rango de Fechas en Java?
- 24. Manera genérica de analizar las fechas en Java
- 25. Diferencia en el tiempo entre dos fechas en Java
- 26. Eliminar las fechas contenidas en otras fechas?
- 27. matriz de bytes a matriz corta y viceversa en java
- 28. Asignación de matriz de encadenamiento en Java
- 29. Matriz de punteros de función en Java
- 30. Verificar una fecha es entre dos fechas en Java
puede escribir un pseudo código de lo que desea. Tal vez Date [] = new Date [] {'2009-01-01', '2009-02-01'}, de esta manera podemos responder mejor a esta pregunta. –