Os usuários podem personalizar e imprimir o calendário de um determinado ano, ou seja, imprimir todo o calendário de um determinado ano.
Por exemplo, imprima o calendário de 2013 da seguinte forma:
Fevereiro de 2013
----------------------------------------
Dom Seg Ter Qua Qui Sex Sáb
2
4 5 6 7 8 9
11 12 13 14 15 16
18 19 20 21 22 23
25 26 27 28
Março de 2013
----------------------------------------
Dom Seg Ter Qua Qui Sex Sáb
2
4 5 6 7 8 9
11 12 13 14 15 16
18 19 20 21 22 23
25 26 27 28 29 30
Abril de 2013
----------------------------------------
Dom Seg Ter Qua Qui Sex Sáb
2 3 4 5 6
8 9 10 11 12 13
15 16 17 18 19 20
22 23 24 25 26 27
29 30
Maio de 2013
----------------------------------------
Dom Seg Ter Qua Qui Sex Sáb
2 3 4
6 7 8 9 10 11
13 14 15 16 17 18
20 21 22 23 24 25
27 28 29 30 31
Junho de 2013
----------------------------------------
Dom Seg Ter Qua Qui Sex Sáb
3 4 5 6 7 8
10 11 12 13 14 15
17 18 19 20 21 22
24 25 26 27 28 29
Julho de 2013
----------------------------------------
Dom Seg Ter Qua Qui Sex Sáb
2 3 4 5 6
8 9 10 11 12 13
15 16 17 18 19 20
22 23 24 25 26 27
29 30 31
Agosto de 2013
----------------------------------------
Dom Seg Ter Qua Qui Sex Sáb
vinte e três
5 6 7 8 9 10
12 13 14 15 16 17
19 20 21 22 23 24
26 27 28 29 30 31
Setembro de 2013
----------------------------------------
Dom Seg Ter Qua Qui Sex Sáb
2 3 4 5 6 7
9 10 11 12 13 14
16 17 18 19 20 21
23 24 25 26 27 28
30
Outubro de 2013
----------------------------------------
Dom Seg Ter Qua Qui Sex Sáb
2 3 4 5
7 8 9 10 11 12
14 15 16 17 18 19
21 22 23 24 25 26
28 29 30 31
Novembro de 2013
----------------------------------------
Dom Seg Ter Qua Qui Sex Sáb
2
4 5 6 7 8 9
11 12 13 14 15 16
18 19 20 21 22 23
25 26 27 28 29 30
Dezembro de 2013
----------------------------------------
Dom Seg Ter Qua Qui Sex Sáb
2 3 4 5 6 7
9 10 11 12 13 14
16 17 18 19 20 21
23 24 25 26 27 28
30 31
Como imprimir: Calendário para janeiro de 2014
Hoje é: 27/04/2013, então o calendário do mês atual é impresso da seguinte forma:
Agora insira a parte do código:
================================================= ======
Parte do código:
================================================= ======
/UUUUUU_Test/src/com/b510/date/HongtenDate.java
importar java.text.SimpleDateFormat;
importar java.util.Calendar;
importar java.util.Date;
importar java.util.GregorianCalendar;
/**
* Uma classe de processamento de data Nesta classe, o construtor <code>HongtenDate()</code> definirá o ano como o ano atual por padrão<br>
* E <code>HongtenDate(int year)</code>, você pode personalizar o ano<br>
*
* <pré>
* Data HongtenDate = new HongtenDate();
* </pré>
*
*ou<br>
*
* <pré>
* HongtenDate hd = novo HongtenDate(2014);
* </pré>
*
* Chame <code>printCalendar()</code> para imprimir a data do ano<br>
* Chame <code>printCurrentMonth()</code> para imprimir a data do mês atual<br>
*, claro, você também pode ligar<br>
* <code>printMonthOfYear()</code>Defina um parâmetro para imprimir a data de um determinado mês<br>
* Aqui estão alguns planos de referência:<br>
*
* <pré>
* // Sem parâmetros, o sistema padroniza para o ano atual
* Data HongtenDate = new HongtenDate();
*data.printCalendar();
* date.printCurrentMonth();
* date.printMonthOfYear(4);
* </pré>
*
*ou<br>
*
* <pré>
* // Definido para 2014
* HongtenDate hd = novo HongtenDate(2014);
* hd.printMêsAtual();
* hd.printMonthOfYear(1);
* </pré>
*
* @data 27/04/2013
* @autor Hongten
*
*/
classe pública HongtenDate {
//MESES
// ===========================================
public static final String JANEIRO = "Janeiro";
public static final String FEVEREIRO = "Fevereiro";
public static final String MARCH = "Março";
public static final String ABRIL = "Abril";
public static final String MAY = "Maio";
public static final String JUN = "Jun";
public static final String JULHO = "Julho";
public static final String AGOSTO = "Agosto";
public static final String SETEMBRO = "Setembro";
public static final String OUTUBRO = "Outubro";
public static final String NOVEMBRO = "Novembro";
public static final String DECEMBER = "Dezembro";
/**
* ano
*/
ano interno privado;
/**
* O dia da semana em 1º de janeiro (por exemplo: 2013-01-01-->Terça-feira, então <code>whatDayOnJanuaryOne = 2;</code>)
*/
private int whatDayOnJanuaryOne;
// principal
// =====================================
public static void main(String[] args) lança exceção {
// Sem parâmetros, o sistema padroniza para o ano atual
data HongtenDate = new HongtenDate();
//date.printCalendar();
date.printCurrentMonth();
//data.printMonthOfYear(4);
//Definido para 2014
HongtenDate hd = novo HongtenDate(2014);
//hd.printCurrentMonth();
//hd.printMonthOfYear(1);
}
// Sem parâmetros, o sistema padroniza para o ano atual
publicHongtenDate() {
Calendário cal = Calendar.getInstance();
este.ano = cal.get(Calendário.ANO);
tentar {
setWhatDayOnJanuaryOne(getJanuaryOne(ano));
} catch (Exceção e) {
e.printStackTrace();
}
}
//Com parâmetros, defina o ano
public HongtenDate(int ano) {
este.ano = ano;
tentar {
setWhatDayOnJanuaryOne(getJanuaryOne(ano));
} catch (Exceção e) {
e.printStackTrace();
}
}
/**
* Imprima todas as datas de um determinado mês
*
* @parammon
* mês
* @throwsException
*/
public void printMonthOfYear(int mon) lança exceção {
if (seg < 1 || seg > 12) {
System.out.println("O mês que você digitou [" + mon + "] está errado, verifique em andamento....");
retornar;
}
GregorianCalendar agora = novo GregorianCalendar();
//Obtém um objeto Data
SimpleDateFormat sdf = new SimpleDateFormat("aaaa-MM-dd");
Data data = sdf.parse(ano + "-" + seg + "-01");
//Define a hora atual
agora.setTime(data);
// Obtém o mês atual a partir da data
int mês = agora.get(Calendário.MÊS);
//Define a data de agora como 1
agora.set(Calendário.DAY_OF_MONTH, 1);
//Obtém o dia da semana agora
int semana = now.get(Calendar.DAY_OF_WEEK);
//Imprime o rótulo do cabeçalho do calendário
System.out.println("日/t一/t二/t三/t四/t五/t六");
//Imprime o espaço antes da data atual
for (int i = Calendário.DOMINGO; i < semana; i++) {
System.out.print("/t");
}
//Imprime o corpo do calendário
while (now.get(Calendário.MONTH) == mês) {
int dia = agora.get(Calendário.DAY_OF_MONTH);
//Alinha o calendário de saída, adicione um espaço se for menor que 10
if (dia <10) {
System.out.print(" " + dia + "/t");
} outro {
System.out.print("" + dia + "/t");
}
//Se for sábado, quebra a linha
if (semana == Calendário.SÁBADO) {
System.out.println();
}
// Cada vez que a data for exibida, adicione um dia à data
agora.add(Calendário.DAY_OF_MONTH, 1);
// Recupera o dia da semana
semana = agora.get(Calendário.DAY_OF_WEEK);
}
}
/**
* Imprima todas as datas do mês atual, isso não mudará dependendo do ano definido pelo usuário
*/
public void printMêsAtual() {
GregorianCalendar agora = novo GregorianCalendar();
//Obtém um objeto Data
Data data = new Data();
//Define a hora atual
agora.setTime(data);
//Obtém o dia atual a partir da data
int hoje = agora.get(Calendário.DAY_OF_MONTH);
// Obtém o mês atual a partir da data
int mês = agora.get(Calendário.MÊS);
//Define a data de agora como 1
agora.set(Calendário.DAY_OF_MONTH, 1);
//Obtém o dia da semana agora
int semana = now.get(Calendar.DAY_OF_WEEK);
//Imprime o rótulo do cabeçalho do calendário
System.out.println("日/t一/t二/t三/t四/t五/t六");
//Imprime o espaço antes da data atual
for (int i = Calendário.DOMINGO; i < semana; i++) {
System.out.print("/t");
}
//Imprime o corpo do calendário
while (now.get(Calendário.MONTH) == mês) {
int dia = agora.get(Calendário.DAY_OF_MONTH);
//Alinha o calendário de saída, adicione um espaço se for menor que 10
if (dia <10) {
//Se for a data atual, adicione um rótulo
if (dia == hoje) {
System.out.print(":)" + dia + "(:/t");
} outro {
System.out.print(" " + dia + "/t");
}
} outro {
//Se for a data atual, adicione um rótulo
if (dia == hoje) {
System.out.print(":)" + dia + "(:/t");
} outro {
System.out.print("" + dia + "/t");
}
}
//Se for sábado, quebra a linha
if (semana == Calendário.SÁBADO) {
System.out.println();
}
// Cada vez que a data for exibida, adicione um dia à data
agora.add(Calendário.DAY_OF_MONTH, 1);
// Recupera o dia da semana
semana = agora.get(Calendário.DAY_OF_WEEK);
}
}
/**
* Obtenha o dia da semana em que é 1º de janeiro deste ano
*
* @param ano
* ano
* @retornar
* @throwsException
*/
public int getJanuaryOne(int ano) lança exceção {
int[] diasSemana = { 0, 1, 2, 3, 4, 5, 6 };
Calendário cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("aaaa-MM-dd");
Data dt = sdf.parse(ano + "-01-01");
cal.setTime(dt);
int w = cal.get(Calendário.DAY_OF_WEEK) - 1;
se (w < 0)
w = 0;
retornar dias da semana[w];
}
/**
* Imprima todos os meses do ano
*/
public void printCalendar() {
for (int i = 1; i <= 12; i++) {
String mês = getMês(i);
printTitle(mês);
//Imprime meses com 31 dias
if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12) {
imprimir31();
}
//Imprime o mês com 30 dias
senão if (i == 4 || i == 6 || i == 9 || i == 11) {
imprimir30();
}
// imprime fevereiro
senão se (i == 2) {
printFevereiro();
}
System.out.println();
}
}
//Formato de impressão
// ========================================== início
/**
* Imprimir fevereiro. Fevereiro pode ser diferente em cada ano, portanto deve ser processado separadamente.
*/
protegido void printFebuary() {
if (este. ano % 4 == 0) {
// ano bissexto
printAnoLeap();
} outro {
// ano normal
printNonleapYear();
}
}
/**
*Formato de impressão para fevereiro em ano bissexto
*/
private void printLeapYear() {
for (int j = 1; j <= 29; j++) {
String tmp = "";
se (j == 1) {
for (int k = 1; k <= this.whatDayOnJanuaryOne % 7; k++) {
tmp = tmp + " ";
}
tmp = tmp + " " + j + " ";
if (this.whatDayOnJanuaryOne == 6) {
System.out.println(tmp);
} outro {
System.out.print(tmp);
}
} senão if (j > 1 && j < 29) {
if ((this.whatDayOnJanuaryOne + j)% 7 == 0) {
System.out.println(" " + j);
} outro {
se (j < 10) {
System.out.print(" " + j + " ");
} outro {
System.out.print(" " + j + " ");
}
}
} senão se (j == 29) {
System.out.println(" " + j);
this.whatDayOnJanuaryOne = ((this.whatDayOnJanuaryOne + j) % 7);
}
}
}
/**
* Imprima o formato de fevereiro em anos normais
*/
private void printNonleapYear() {
for (int j = 1; j <= 28; j++) {
String tmp = "";
se (j == 1) {
for (int k = 1; k <= this.whatDayOnJanuaryOne % 7; k++) {
tmp = tmp + " ";
}
tmp = tmp + " " + j + " ";
if (this.whatDayOnJanuaryOne == 6) {
System.out.println(tmp);
} outro {
System.out.print(tmp);
}
} senão if (j > 1 && j < 28) {
if ((this.whatDayOnJanuaryOne + j)% 7 == 0) {
System.out.println(" " + j);
} outro {
se (j < 10) {
System.out.print(" " + j + " ");
} outro {
System.out.print(" " + j + " ");
}
}
} senão se (j == 28) {
System.out.println(" " + j);
this.whatDayOnJanuaryOne = ((this.whatDayOnJanuaryOne + j) % 7);
}
}
}
/**
* Imprimir meses com 30 dias
*/
void protegido print30() {
for (int j = 1; j <= 30; j++) {
String tmp = "";
se (j == 1) {
for (int k = 1; k <= this.whatDayOnJanuaryOne % 7; k++) {
tmp = tmp + " ";
}
tmp = tmp + " " + j + " ";
if (this.whatDayOnJanuaryOne == 6) {
System.out.println(tmp);
} outro {
System.out.print(tmp);
}
} senão if (j > 1 && j < 30) {
if ((this.whatDayOnJanuaryOne + j)% 7 == 0) {
System.out.println(" " + j);
} outro {
se (j < 10) {
System.out.print(" " + j + " ");
} outro {
System.out.print(" " + j + " ");
}
}
} senão se (j == 30) {
System.out.println(" " + j);
this.whatDayOnJanuaryOne = ((this.whatDayOnJanuaryOne + j) % 7);
}
}
}
/**
* Imprimir meses com 31 dias
*/
void protegido print31() {
for (int j = 1; j <= 31; j++) {
String tmp = "";
se (j == 1) {
for (int k = 1; k <= this.whatDayOnJanuaryOne % 7; k++) {
tmp = tmp + " ";
}
tmp = tmp + " " + j + " ";
if (this.whatDayOnJanuaryOne == 6) {
System.out.println(tmp);
} outro {
System.out.print(tmp);
}
} senão if (j > 1 && j < 31) {
if ((this.whatDayOnJanuaryOne + j)% 7 == 0) {
System.out.println(" " + j);
} outro {
se (j < 10) {
System.out.print(" " + j + " ");
} outro {
System.out.print(" " + j + " ");
}
}
} senão se (j == 31) {
System.out.println(" " + j);
this.whatDayOnJanuaryOne = ((this.whatDayOnJanuaryOne + j) % 7);
}
}
}
/**
*Imprima o título de cada mês
*
* @param mês
*/
protegido void printTitle(String mês) {
System.out.println(" " + mês + " " + este.ano + " ");
System.out.println("---------------------------------------------------------- ---");
System.out.println("Dom Seg Ter Qua Qui Sex Sáb");
}
//Formato de impressão
// ============================================ fim
/**
* Obtenha o nome em inglês do mês
*
* @paramm
* Representação numérica do mês
* @retornar
*/
public String getMês(int m) {
String mês = "";
mudar (m) {
caso 1:
mês = JANEIRO;
quebrar;
caso 2:
mês = FEVEREIRO;
quebrar;
caso 3:
mês = MARÇO;
quebrar;
caso 4:
mês = ABRIL;
quebrar;
caso 5:
mês = MAIO;
quebrar;
caso 6:
mês = JUNHO;
quebrar;
caso 7:
mês = JULHO;
quebrar;
caso 8:
mês = AGOSTO;
quebrar;
caso 9:
mês = SETEMBRO;
quebrar;
caso 10:
mês = OUTUBRO;
quebrar;
caso 11:
mês = NOVEMBRO;
quebrar;
caso 12:
mês = DEZEMBRO;
quebrar;
}
mês de retorno;
}
public int getAno() {
ano de retorno;
}
public void setAno(int ano) {
este.ano = ano;
}
public int getWhatDayOnJanuaryOne() {
retornar whatDayOnJanuaryOne;
}
public void setWhatDayOnJanuaryOne(int whatDayOnJanuaryOne) {
this.whatDayOnJanuaryOne = whatDayOnJanuaryOne;
}
}