[Parte 3] Crea tu propio calendario (fecha/hora) de la biblioteca desde cero utilizando Java.


Parte 3 - mes ID y el nombre del Mes

Después de la parte 1 y parte 2, ahora estamos en condiciones de analizar el día, mes y año en una entrada dada. Por otra parte, podemos comprobar si un año es un año bisiesto o no, y obtenemos el número de días al mes. El problema es que nuestro programa es completamente dependiente de la entrada. Codificamos la fecha en que queremos ir en nuestros métodos, pero ¿cómo hacemos que nuestro ordenador, por ejemplo, que el próximo mes después de enero es febrero y así sucesivamente?

En esta parte, vamos a discutir:




  • ArrayList
  • Parámetros del tipo de datos
  • Método Para añadir elementos a una lista de matrices usando el botón Añadir ()
  • Método de Obtención de la posición de un elemento en una lista de arreglo mediante el .indexOf ()
  • Método de conseguir un artículo en una serie de listas que su índice mediante el .get ()

El cuerpo del "SampleClass" muestra las líneas que ya hemos hablado. La captura de pantalla fue publicado originalmente en la Parte 1. Las siguientes métodos que se discutirán son la "monthID ()" y "Nombremes ()" métodos.

Pasaremos nuestra variable "FirstDate" en los siguientes métodos:

Método Propósito monthID () Devuelve el ID de un nombre determinado mes Nombremes () Devuelve el nombre del mes de un ID dado Métodos y su propósito.

ID Mes

Veamos primero en el método de "monthID ()".

System.out.println ("*** Primera cita:" + + FirstDate "***"); System.out.println (myCalendar.getMonth (FirstDate) + "mes Identificación s 'es" + myCalendar.monthID (FirstDate) + ".");

En el código anterior, hemos pasado la fecha de "01-JAN-2016" como argumento para el método "monthID ()". Esto nos dio la salida "mes de ENERO ID es 1."

Meses siempre están disponibles en un orden específico y fijo. El primer mes siempre es enero, entonces es febrero, marzo, y así sucesivamente hasta el último mes es diciembre. Después de que el último día de diciembre, restaurar, y data del primer mes, que es enero y repetir. ¿Por qué digo esto? Esto es básico cosas, él no lo sabe? Bueno, estoy seguro que ya sabes. Y 'que conocemos, pero como ya he dicho en las partes anteriores, el equipo no tiene el mismo conocimiento tan común como nosotros y tenemos que darle instrucciones en forma matemática para que de alguna manera puede "imitar" la forma en que las decisiones sobre la base de nuestro conocimiento común.

El orden de los meses en un año es siempre:

Mes ENE Febrero Mar Abril Mayo Junio Julio Agosto Septiembre Octubre Noviembre Diciembre Identificación 1 2 3 4 5 6 7 8 9 10 11 12 Los nombres de los meses y de identificación.

Asignación de una ID de cada mes

En la tabla anterior, hemos dado cada mes un ID siguiendo un orden específico. El ordenador incluye más números. No puede tener el mismo conocimiento común como nosotros, pero al menos ahora sabes que abril es después de que el mes de marzo, porque ID de abril, que es 4 es mayor de ID de marzo, que es 3.

Ahora necesitamos asociar estas o ID números del 1 al 12 con los meses de enero a diciembre. En el código de abajo, he usado un ArrayList. He creado el objeto denominado "arrayList", de acuerdo a la clase ArrayList para que pueda usar sus métodos. También he añadido "" en la instancia de la clase ArrayList para que sólo permita que objetos de tipo de datos de cadena que se añade en la lista de las matrices.

ArrayList ArrayList = new ArrayList ();

Luego usé el método "arrayList.add ()" y añadió que los doce meses, en el orden correcto.

arrayList.add ("Jan"); arrayList.add ("febrero"); arrayList.add ("MAR"); arrayList.add ("Abril"); arrayList.add ("may"); arrayList.add ("Junio"); arrayList.add ("Julio"); arrayList.add ("Agosto"); arrayList.add ("SEP"); arrayList.add ("Octubre"); arrayList.add ("Noviembre"); arrayList.add ("DEC");

Ahora que tenemos una lista de matriz que contiene todos los doce meses, tenemos que conseguir su ID para el mes se nos dará. Vamos a utilizar la posición de un elemento de una matriz o un índice como su identificación. Desde la adición de los elementos en el orden correcto, no vamos a tener un problema con el fin de sus índices. Estábamos muy familiarizados con las matrices en partes anteriores de este artículo que usted puede haber tomado la hipótesis de que "Jan" tendrá el índice 0, ya que es el primer elemento de la matriz.

Para evitar confusiones, he añadido un "1" a cambio después de obtener el índice del mes para que siga nuestra tabla de arriba, donde ID del 1 de enero de Identificación de febrero es 2, y así sucesivamente.

volver arrayList.indexOf (getMonth (fecha)) + 1;

¿Qué significa esta línea:

  1. Pasa el valor de la "fecha" para getMonth ().
  2. Salta meses devuelto por getMonth () para indexOf ().
  3. Añade 1 al índice devuelto por el método indexOf ().
  4. Devuelve el valor final.

Probamos si nuestro método funciona para todos los meses en un año. Se supone que el cuerpo de su método monthID () se ve como el código de abajo:

MyCalendar

public class MyCalendar { public int monthID (datos de Cuerda) { ArrayList ArrayList = new ArrayList (); arrayList.add ("Jan"); arrayList.add ("febrero"); arrayList.add ("MAR"); arrayList.add ("Abril"); arrayList.add ("may"); arrayList.add ("Junio"); arrayList.add ("Julio"); arrayList.add ("Agosto"); arrayList.add ("SEP"); arrayList.add ("Octubre"); arrayList.add ("Noviembre"); arrayList.add ("DEC"); volver arrayList.indexOf (getMonth (fecha)) + 1; } }

Podemos utilizar el código de abajo para ver si se devuelve el ID correcto para cada mes.

SampleClass

public class SampleClass { Main (String [] args) {public void estática MyCalendar MyCalendar MyCalendar = new (); System.out.println ("mes de ENERO ID es" + myCalendar.monthID ("01-JAN-2016") + "."); System.out.println ("El mes de febrero es ID" + myCalendar.monthID ("26-FEB-1991") + "."); System.out.println ("mes Identificación del MAR" + myCalendar.monthID ("05-MAR-2015") + "."); System.out.println ("El mes de abril ID es" + myCalendar.monthID ("08-abril-1965") + "."); System.out.println ("Identificación de mayo es" + myCalendar.monthID ("11-MAY-2005") + "."); System.out.println ("El mes de junio ID es" + myCalendar.monthID ("06-Junio-2001") + "."); System.out.println ("Julio ID es" + myCalendar.monthID ("09-julio-1998") + "."); System.out.println ("Agosto ID es" + myCalendar.monthID ("14-agosto-2012") + "."); System.out.println ("Identificación de septiembre es" + myCalendar.monthID ("17-septiembre-2009") + "."); System.out.println ("mes ID de octubre es" + myCalendar.monthID ("27-octubre-1984") + "."); System.out.println ("mes ID de noviembre es" + myCalendar.monthID ("19-noviembre-1990") + "."); System.out.println ("El mes de diciembre es ID" + myCalendar.monthID ("04-diciembre-2014") + "."); } }

La salida que tenemos es ahora similar a la tabla que hemos creado antes.

Nombre Mes

Después de que hemos asignado un ID para cada mes, el ordenador puede ahora nos dicen la identificación de un mes dado, pero esto aún no ha concluido. Desde nuestro primer problema es cómo podemos escribir un programa que nos dice el próximo mes, después de un mes, regresando sólo el ID de un mes es todavía bastante inútil porque esta vez, el usuario (humano) no va a entender lo que significa. El valor que se devuelve es el nombre del próximo mes sí mismo. Escribimos un algoritmo simple para lograr nuestro objetivo.

Algoritmo

  1. Obtener el mes de ID de un mes determinado.
  2. Añadir 1 a ID meses.
  3. Obtener el nombre del mes asociado con el número de identificación equivalente + 1.

Ejemplo

  1. Mes ID de enero es 1.
  2. 1 + 1 = 2.
  3. Nombre ID 2 meses del mes es febrero.

Resultado

Por lo tanto, el próximo mes después de enero es febrero.

Así que ahora tenemos un método que toma un mes ID y devuelve el nombre del mes. Aquí es donde el método "Nombremes ()" se hace necesario.

System.out.println ("El mes ID" + myCalendar.monthID (FirstDate) + "'s nombre es" + myCalendar.monthName (myCalendar.monthID (FirstDate)) + ".");

He añadido la línea de código por encima del año anterior. Después de ejecutar el programa, se ha creado un nuevo ouput "El mes ID es 1 de enero del nombre"

Recibe el nombre de un mes ID

El cuerpo del "monthID ()" y "MonthName ()" métodos muy similares excepto por el tipo de retorno y la instrucción de retorno. Ambos métodos utilizan un ArrayList y añade doce meses. Usted puede pensar que esto es repetitivo y una pérdida de código porque he creado dos métodos que tienen prácticamente el mismo cuerpo. En realidad, lo es. Obtén la fecha posterior que se puede hacer en un solo método, sino que elegí para dividirla en la tarea muy específica y creé un método específico para cada modo sería más fácil de explicar.

Como se menciona en la nota en la parte 1, vamos a comenzar a pulir el código una vez que se complete la biblioteca.

El "Nombremes ()" método, cuando se invoca, acepta el argumento "monthID", que debería ser cualquier número entre 1 y 12. El método también se declara como "Cadena", lo que significa que devolverá un valor de tipo cadena de datos. En sentencia de retorno, escribimos "arrayList.get (monthID - 1)". El "get ()" método ArrayList puede ser considerado como el opuesto de método "indexOf ()" que hemos utilizado en el método "monthID ()".

Método Propósito indexOf () Acepte el valor real y devuelve su posición en la matriz. get () Aceptar el índice y devuelve el valor asociado con él en la matriz. Métodos de la clase ArrayList.

Pasamos el tema "monthID - 1" para el método "get ()". Resta 1 de la valor "monthID", ya que el índice siempre comienza con 0. Si nuestro método recibe monthID 2, debe devolver el mes "febrero", ya que es el segundo mes, pero en la matriz, "Febrero" es el segundo elemento añadido a la lista y porque el índice comienza con 0 como el primer punto, el índice del segundo objeto es 1 y, a continuación, 0 es "Jan", 1 es equivalente a "Febrero" y 2 es equivalente a "MAR". No queremos que la confusión.

Si nos deshacemos de "- 1" en la instrucción de retorno, la salida será confundido.

Si mantenemos el "- 1" en la instrucción de retorno, la salida será predecible y así es como lo queremos.

Lo que ha ocurrido aquí es que tenemos el valor 2, restar 1, y es llevado al valor 1, así que nos dieron el valor asociado a ese número que es "febrero". Esto es lo que sucede cada vez que se invoca el método. El usuario puede ahora la entrada 2 y esperar que el resultado será "Febrero" o 4 y esperar que el resultado será "Abril", y esto es exactamente lo que debe recibir. El equipo ahora parece un poco ", ya que tiene el mismo conocimiento común como nosotros.

Llegar al mes próximo

Podemos obtener el próximo mes al pasar la ID + 1 mes para el método "Nombremes ()". De esta manera, el ID de un mes los aumentos de conseguir el siguiente mes en la matriz.

Ejemplo

La línea myCalendar.monthName "(1 + 1), "donde el primer número (1) es el monthID de "Jan" y el siguiente número agregado (+ 1) significa "el mes próximo".

System.out.println ("El próximo mes después de JAN es" myCalendar.monthName + (1 + 1)); System.out.println ("El próximo mes después de febrero" myCalendar.monthName + (2 + 1));

También podemos obtener el siguiente mes, no hay código de identificación el mes utilizando el "monthID ()" junto con el "Nombremes ()".

System.out.println ("El próximo mes después de JAN es" + myCalendar.monthName (myCalendar.monthID (FirstDate) + 1)); System.out.println ("El próximo mes después de febrero es" + myCalendar.monthName (myCalendar.monthID ("26-FEB-1991") + 1));

Supongo que usted ha escrito el código de abajo para el MyCalendar clase. Esto incluye el método monthID () y Nombremes ().

MyCalendar

public class MyCalendar { public int monthID (datos de Cuerda) { ArrayList ArrayList = new ArrayList (); arrayList.add ("Jan"); arrayList.add ("febrero"); arrayList.add ("MAR"); arrayList.add ("Abril"); arrayList.add ("may"); arrayList.add ("Junio"); arrayList.add ("Julio"); arrayList.add ("Agosto"); arrayList.add ("SEP"); arrayList.add ("Octubre"); arrayList.add ("Noviembre"); arrayList.add ("DEC"); volver arrayList.indexOf (getMonth (fecha)) + 1; } public String Nombremes (int monthID) { ArrayList ArrayList = new ArrayList (); arrayList.add ("Jan"); arrayList.add ("febrero"); arrayList.add ("MAR"); arrayList.add ("Abril"); arrayList.add ("may"); arrayList.add ("Junio"); arrayList.add ("Julio"); arrayList.add ("Agosto"); arrayList.add ("SEP"); arrayList.add ("Octubre"); arrayList.add ("Noviembre"); arrayList.add ("DEC"); volver arrayList.get (monthID - 1); } }

SampleClass

, puede utilizar el siguiente código para SampleClass para ver si el código que ha escrito obras. Trate de jugar con los valores y ver si le da los resultados esperados.

public class SampleClass { Main (String [] args) {public void estática MyCalendar MyCalendar MyCalendar = new (); System.out.println ("El próximo mes después de JAN es" myCalendar.monthName + (1 + 1)); System.out.println ("El próximo mes después de febrero" myCalendar.monthName + (2 + 1)); System.out.println ("El próximo mes después de MAR" myCalendar.monthName + (3 + 1)); System.out.println ("El próximo mes después de abril es" + myCalendar.monthName (4 + 1)); System.out.println ("El próximo mes después de mayo es" + myCalendar.monthName (5 + 1)); System.out.println ("El próximo mes después de junio es" + myCalendar.monthName (6 + 1)); System.out.println ("El próximo mes después de julio es" + myCalendar.monthName (7 + 1)); System.out.println ("El próximo mes después de agosto es" + myCalendar.monthName (8 + 1)); System.out.println ("El próximo mes después de septiembre es" + myCalendar.monthName (9 + 1)); System.out.println ("El próximo mes después de octubre" myCalendar.monthName + (10 + 1)); System.out.println ("El próximo mes después de noviembre es" myCalendar.monthName + (11 + 1)); System.out.println ("El próximo mes después de diciembre es" myCalendar.monthName + (12 + 1)); } }

Nuestro método fue capaz de devolver el siguiente mes de mes de enero a noviembre, pero encontró una excepción al intentar obtener el próximo mes de diciembre. Se espera que esto ya se ha implementado un "reset", incluso si en el mes de enero automáticamente una vez que llega el último mes del año - diciembre.

Solucionamos este problema en las próximas partes de este artículo. Por ahora, suponga que ha escrito el código anterior y está consiguiendo el mismo resultado que incluye el error.

Nota importante:

Los códigos anteriores se utilizan simplemente como un resumen de lo que hemos discutido en la Parte 3. Usted debe asegurarse de que los métodos que hemos creado en las partes anteriores se agrega en clase MyCalendar si se producen errores en algunos métodos no existen en la clase.

Fin de la Parte 3

Hemos añadido dos nuevos métodos y dado más "identidad" para nuestras fechas, incluyendo un ID y el nombre de cada uno. Podemos obtener el ID de un mes determinado, y viceversa. También podemos obtener el siguiente mes con la adición de 1 a mes ID, pero todavía estamos agregando manualmente 1 o poner monthID para obtener el resultado que queremos.

En la siguiente parte, vamos a eliminar todos estos esfuerzos.

(0)
(0)

Comentarios - 0

Sin comentarios

Añadir un comentario

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Caracteres a la izquierda: 3000
captcha