crear un calendario.!!
lo que quiero es q me pueda mostrar los nombres de la semana dias y mes osea algo asi: ---> Lunes 4 de Febrero pero el problema que tengo es que no me muestra los dias de manera seguida..!!!
public class mese {
public static void main(String[] args) {
String[] dias = {"Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado", "Domingo"};
for (int E=1; E<=31; ){
for (int i = 0; i < dias.length;i++) {
if (E<=31){
System.out.println(dias[i]+" "+E+" enero");
}
else{
break;
}
E++;
}
}
for (int f=1; f<=28;){
for (int i = 0 ; i < dias.length;i++) {
if (f<=28){
System.out.println(dias[i]+" "+f+" febrero");
}
else{
break;
}
f++;
}
}
for (int m=1; m<=31;){
for (int i = 0; i < dias.length;i++) {
if (m<=31){
System.out.println(dias[i]+" "+m+" marzo");
}
else{
break;
}
m++;
}
}
for (int a=1; a<=30;){
for (int i = 3; i < dias.length;i++) {
if (a<=30){
System.out.println(dias[i]+" "+a+" abril");
}
else{
break;
}
a++;
}
}
}
}
- jsrivero22's blog
- Inicie sesión o regístrese para enviar comentarios
Comentarios
<code></code>
¿Por qué no editas tu publicación y pones el código entre las etiquetas <code> y </code>, p.ej.:
Con lo que obtendrías:
* * * * *
Opcionalmente también le puedes dar formato en
http://codebeautify.org/javaviewer
.A que te refieres con "de
A que te refieres con "de manera seguida"? quieres decir en una sola línea? O porque no va más allá de abril? o porque de miércoles 31 de enero se salta a lunes 1 de febrero en tu programa?
Java tiene el paquete java.util que tiene objetos que te pueden ayudar a imprimir el día
Puedes hacer un for con LocalDate.parse("2015-01-01") e incrementar al siguiente día con plusDays(1);
Así:
import java.time.format.TextStyle;
import java.util.Locale;
class Cal {
public static void main( String ... args ) {
final Locale español = new Locale("es","MX");
for ( LocalDate day = LocalDate.parse("2015-01-01"); day.getYear() < 2016 ; day = day.plusDays(1)) {
System.out.printf("%-10s %02d de %s del %s%n",
day.getDayOfWeek().getDisplayName(TextStyle.FULL, español),
day.getDayOfMonth(),
day.getMonth().getDisplayName(TextStyle.FULL, español), day.getYear()
);
}
}
}
Salida (muestra)
lunes 27 de abril del 2015
martes 28 de abril del 2015
miércoles 29 de abril del 2015
jueves 30 de abril del 2015
viernes 01 de mayo del 2015
sábado 02 de mayo del 2015
domingo 03 de mayo del 2015
lunes 04 de mayo del 2015
martes 05 de mayo del 2015
Ahora si la intención es calcular los días por ti mismo para ejercitar, puedes usar tres arreglos ( dias, meses y límites de cada mes ) e iterar del 1 al 365, cada vez que lleges al fin de la semana reseteas el indice a 0 y cada vez que excedas el límite de un mes, pasas al siguiente:
public static void main( String ... args ) {
String [] daysOfWeek = {"lunes", "martes", "miércoles", "jueves", "viernes", "sábado", "domingo" };
String [] months = {"enero", "febrero", "marzo", "abril", "mayo", "junio",
"julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"};
int [] limits = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int dow = 3; // empieza en jueves
int dom = 1;
int m = 0;
for ( int i = 0 ; i < 365 ; i++ ) {
System.out.printf("%-10s %02d de %s del 2015%n",
daysOfWeek[dow++],
dom++,
months[m]
);
// check and reset cycles
if (dow == daysOfWeek.length ) {
dow = 0;
}
if (dom > limits[m] ) {
dom = 1;
m++;
}
}
}
}
Finalmente desplegar el calendario anual por meses ( en esta forma )
es ya otro tema más interesante y espero que no sea tan difícil de resolver.
edit: Cree este ejercicio http://www.javamexico.org/blogs/oscarryz/imprimir_en_formato_calendario_...