Imprimindo um calendario no Console[Probs de formatação]

7 respostas
S

Bem pessoal estou querendo imprimir um calendario simples no console, mas estou com grandes dificuldade na formatação, se observarem meu programa verá q ele funciona, mas não esta saindo com a formatação correta, jah tem muita coisa aqui e nunca fica bom, teria como alguem me ajudar, código segue abaixo:

import java.util.Scanner;

public class Calendario {
   public static void main(String[]args) {
           
   int DiaSem;
   int Bissex;
   int mes;
   int dia;
   int aux;
   
   
   Scanner input = new Scanner(System.in);
   
   
   do {
      System.out.println(" Entre com o dia da semana do primeiro dia do ano");
      DiaSem = input.nextInt();
   } while((DiaSem < 0) || (DiaSem > 7));

   do {
       System.out.println("O ano é bissexto? (0 para não e 1 para sim)");
       Bissex = input.nextInt();
   } while(( Bissex != 0) && (Bissex !=  1));

   aux = 0;
   
   
   for(mes = 1; mes <=12; mes++) {
      System.out.println();
      switch(mes) {
      
      case 1:
         System.out.println("Janeiro");
         break;
      case 2:
         System.out.println("Fevereiro");     
         break;
      case 3:
         System.out.println("Março");     
         break;
      case 4:
         System.out.println("Abril");     
         break;
      case 5:
         System.out.println("Maio");     
         break;
      case 6:
         System.out.println("Junho");             
         break;     
      case 7:
         System.out.println("Julho");             
         break;     
      case 8:
         System.out.println("Agosto");             
         break;     
      case 9:
         System.out.println("Setembro");             
         break;
      case 10:
         System.out.println("Outubro");             
         break;     
      case 11:
         System.out.println("Novembro");             
         break;     
      case 12:
         System.out.println("Dezembro");             
         break;        
     }     
     System.out.println("\n\nDom  Seg  Ter  Qua  Qui  Sex  Sab");
     
     switch(mes) {
     
     case 1:
        aux = 31;
        break;
     case 2:        
        if (Bissex == 0) {
        aux  = 28;
        } else {
        aux = 29;
     }                                                  
        break;
        
     case 3:
         aux = 31;
         break;          
      case 4:
         aux = 30;
         break;           
              
      case 5:
         aux = 31;
         break;               
              
       case 6:
         aux = 30;
         break;                
              
       case 7:
         aux = 31;
         break;        
         
       case 8:
         aux = 31;
         break;               
            
       case 9:
         aux = 30;
         break;            
   
      case 10:
         aux = 31;
         break;        
         
         
      case 11:
         aux = 30;
         break;            
         
         
      case 12:
         aux = 31;
         break;         
         
     }
     
    int aux1 = 1; 
     for(dia = 1; dia <= aux; dia++) {
        if (dia == aux1++) {
           switch(DiaSem) {
           case 1:
              System.out.print (" " + dia);        
              break;
           
           case 2:
              System.out.print ("      " + dia);        
              break;
           
           case 3:
              System.out.print ("           " + dia);        
              break;
           
           case 4:
              System.out.print ("                " + dia);        
              break;
           
           case 5:
              System.out.print ("                     " + dia);        
              break;
           
           case 6:
              System.out.print ("                          " + dia);        
              break;
           
           case 7:
              System.out.print ("                               " + dia);            
              break;
                 
           }
           
           DiaSem = DiaSem + 1;
           if (DiaSem == 7) {
              DiaSem = 1;
              System.out.println();
           } else{
                if (DiaSem == 0) {
                   if(dia > 9) {
                      System.out.print(" " + dia); 
                   } else {
                      System.out.print("   " + dia);     
                   }
                } 
           }
              
              System.out.println("");
        }
    }
   }
}
 }

7 Respostas

S

Tentei uma versão com vetor aqui mas continua horrivel a formatação, sem falar que me foi proibido o uso de vetores e matrizs :cry:… Ngm ai tem uma ideia msm naum =/

renatoes

Não sei se vc possui ou se ajudaria… no livro Java Como Programar, dos Deitel, mas lá tem um capítulo apenas de formatação de Strings/datas.
Mas não entendi muito bem a formatação que vc quer fazer…
Poderia dizer como seria essa formatação?

S

Seria mais ou menos assim

Dom Seg Ter Qua Qui Sex Sab
2 3 4 5 6 7 8

9 10
entendeu, e qndo acabar o mes na hora d entrar no outro eu tenho q ver em qual dia ele vai entra por exemplo, c um mes acaba na segundo o próximo começa na terça… Isso esta me dando muita dor d cabeça, vou dar uma olhada no livro, vlw…

edit: Engraçado eu escrevo aki na caixa d mensagem a formatação q quero
mas na hora q sai sai totalmente errada AFFF :lol:

Mas assim, os dias da semana q tem q ter 2 espaços entre si, e o dia do mes, tem q ficar centralizado com o dia da semana… E tem q ter 2 espaços das linhas dos dias

S

Dei uma olhada, e eu tentei umas ideias lah mas nunca fica do jeito q quero, aff to quase desistindo jah msm :cry: :cry:

SaMuCaO

cara, eu nao manjo muito :D, mas no console eu axo dificil vc conseguir uma formatação exata

abraço!!!

S

No meu programa ai estou imprimindo um mes debaixo do outro
alguem tem ideia de como poderia fazer para imprimir um ao lado do outro
msm a formatação dos numeros naum estando muito boa
alguemtem ideia?

Kknd

Usa tabulação (/t)

Criado 17 de novembro de 2006
Ultima resposta 27 de nov. de 2006
Respostas 7
Participantes 4