Pengguna dapat menyesuaikan dan mencetak kalender untuk tahun tertentu, yaitu mencetak semua kalender untuk tahun tertentu.
Misalnya print kalender 2013 sebagai berikut:
Februari 2013
----------------------------------------
Minggu Sen Sel Rab Kam Jum Sab
2
4 5 6 7 8 9
11 12 13 14 15 16
18 19 20 21 22 23
25 26 27 28
Maret 2013
----------------------------------------
Minggu Sen Sel Rab Kam Jum Sab
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
April 2013
----------------------------------------
Minggu Sen Sel Rab Kam Jum Sab
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
Mei 2013
----------------------------------------
Minggu Sen Sel Rab Kam Jum Sab
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
Juni 2013
----------------------------------------
Minggu Sen Sel Rab Kam Jum Sab
3 4 5 6 7 8
10 11 12 13 14 15
17 18 19 20 21 22
24 25 26 27 28 29
Juli 2013
----------------------------------------
Minggu Sen Sel Rab Kam Jum Sab
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
Agustus 2013
----------------------------------------
Minggu Sen Sel Rab Kam Jum Sab
dua puluh tiga
5 6 7 8 9 10
12 13 14 15 16 17
19 20 21 22 23 24
26 27 28 29 30 31
September 2013
----------------------------------------
Minggu Sen Sel Rab Kam Jum Sab
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
Oktober 2013
----------------------------------------
Minggu Sen Sel Rab Kam Jum Sab
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
November 2013
----------------------------------------
Minggu Sen Sel Rab Kam Jum Sab
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
Desember 2013
----------------------------------------
Minggu Sen Sel Rab Kam Jum Sab
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
Seperti pencetakan: Kalender Januari 2014
Hari ini: 27-04-2013, maka kalender bulan ini dicetak sebagai berikut:
Sekarang masukkan bagian kode:
==================== ======
Bagian kode:
==================== ======
/UUUUUU_Test/src/com/b510/date/HongtenDate.java
impor java.text.SimpleDateFormat;
import java.util.Kalender;
import java.util.Date;
import java.util.GregorianCalendar;
/**
* Kelas pemrosesan tanggal. Di kelas ini, konstruktor <code>HongtenDate()</code> akan menyetel tahun ke tahun ini secara default<br>
* Dan <code>HongtenDate(int tahun)</code>, Anda dapat menyesuaikan tahun<br>
*
* <pra>
* Tanggal HongtenDate = HongtenDate baru();
* </pra>
*
* atau<br>
*
* <pra>
* HongtenDate hd = HongtenDate baru (2014);
* </pra>
*
* Panggil <code>printCalendar()</code> untuk mencetak tanggal tahun<br>
* Panggil <code>printCurrentMonth()</code> untuk mencetak tanggal bulan ini<br>
*, tentu saja, Anda juga dapat menelepon<br>
* <code>printMonthOfYear()</code>Menetapkan parameter untuk mencetak tanggal pada bulan tertentu<br>
* Berikut ini beberapa rencana referensi:<br>
*
* <pra>
* // Tidak ada parameter, sistem default ke tahun berjalan
* Tanggal HongtenDate = HongtenDate baru();
* tanggal.printCalendar();
* tanggal.printCurrentMonth();
* tanggal.printMonthOfYear(4);
* </pra>
*
* atau<br>
*
* <pra>
* // Disetel ke 2014
* HongtenDate hd = HongtenDate baru (2014);
* hd.printCurrentMonth();
* hd.printBulanTahun(1);
* </pra>
*
* @tanggal 27-4-2013
* @penulis hongten
*
*/
kelas publik HongtenDate {
// BULAN
// ===============
public static final String JANUARY = "Januari";
String akhir statis publik FEBUARY = "Februari";
String akhir statis publik MARET = "Maret";
string akhir statis publik APRIL = "April";
public static final String MUNGKIN = "Mei";
String akhir statis publik JUN = "Jun";
public static final String JULY = "Juli";
String akhir statis publik AGUSTUS = "Agustus";
public static final String SEPTERMBER = "September";
public static final String OCTOBER = "Oktober";
String akhir statis publik NOVEMBER = "November";
public static final String DECEMBER = "Desember";
/**
* tahun
*/
tahun int pribadi;
/**
* Hari dalam seminggu pada tanggal 1 Januari (misal: 01-01-2013-->Selasa, jadi <code>whatDayOnJanuaryOne = 2;</code>)
*/
private int WhatDayOnJanuaryOne;
// utama
// ========
public static void main(String[] args) melempar Pengecualian {
// Tidak ada parameter, sistem default ke tahun berjalan
Tanggal HongtenDate = HongtenDate baru();
//tanggal.printCalendar();
tanggal.printCurrentMonth();
// tanggal.printMonthOfYear(4);
// Setel ke 2014
HongtenDate hd = HongtenDate baru(2014);
// hd.printCurrentMonth();
// hd.printMonthOfYear(1);
}
// Tidak ada parameter, sistem default ke tahun berjalan
publik HongtenDate() {
Kalender cal = Kalender.getInstance();
this.year = cal.get(Calendar.YEAR);
mencoba {
setWhatDayOnJanuaryOne(getJanuaryOne(tahun));
} tangkapan (Pengecualian e) {
e.printStackTrace();
}
}
//Dengan parameter, atur tahun
publik HongtenDate(int tahun) {
this.year = tahun;
mencoba {
setWhatDayOnJanuaryOne(getJanuaryOne(tahun));
} tangkapan (Pengecualian e) {
e.printStackTrace();
}
}
/**
* Cetak semua tanggal pada bulan tertentu
*
* @parammon
* bulan
* @throwsException
*/
public void printMonthOfYear(int mon) memunculkan Pengecualian {
if (Senin < 1 || Sen > 12) {
System.out.println("Bulan yang anda masukkan ["+mon+"] salah, silakan periksa sedang berlangsung....");
kembali;
}
GregorianCalendar sekarang = GregorianCalendar baru();
//Dapatkan objek Tanggal
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Tanggal tanggal = sdf.parse(tahun + "-" + senin + "-01");
//Setel waktu saat ini
sekarang.setTime(tanggal);
// Dapatkan bulan saat ini dari tanggal
int bulan = sekarang.dapatkan(Kalender.MONTH);
//Tetapkan tanggal sekarang ke 1
sekarang.set(Kalender.DAY_OF_MONTH, 1);
// Dapatkan hari dalam seminggu sekarang
int minggu = sekarang.dapatkan(Kalender.DAY_OF_WEEK);
//Cetak label header kalender
System.out.println("日/t一/t二/t三/t四/t五/t六");
//Cetak spasi sebelum tanggal sekarang
for (int i = Kalender.MINGGU; i < minggu; i++) {
Sistem.keluar.cetak("/t");
}
//Cetak badan kalender
while (now.get(Calendar.MONTH) == bulan) {
int hari = sekarang.dapatkan(Kalender.DAY_OF_MONTH);
//Sejajarkan kalender keluaran, tambahkan spasi jika kurang dari 10
jika (hari < 10) {
System.out.print(" " + hari + "/t");
} kalau tidak {
System.out.print("" + hari + "/t");
}
// Jika ini hari Sabtu, selesaikan antreannya
if (minggu == Kalender.SABTU) {
Sistem.keluar.println();
}
// Setiap kali tanggal ditampilkan, tambahkan satu hari ke tanggal tersebut
sekarang.tambahkan(Kalender.DAY_OF_MONTH, 1);
// Ambil hari dalam seminggu
minggu = sekarang.dapatkan(Kalender.DAY_OF_WEEK);
}
}
/**
* Cetak semua tanggal pada bulan ini, ini tidak akan berubah tergantung tahun yang ditentukan oleh pengguna
*/
kekosongan publik printCurrentMonth() {
GregorianCalendar sekarang = GregorianCalendar baru();
//Dapatkan objek Tanggal
Tanggal tanggal = Tanggal baru();
//Setel waktu saat ini
sekarang.setTime(tanggal);
//Dapatkan hari ini dari tanggal
int hari ini = sekarang.dapatkan(Kalender.DAY_OF_MONTH);
// Dapatkan bulan saat ini dari tanggal
int bulan = sekarang.dapatkan(Kalender.MONTH);
//Tetapkan tanggal sekarang ke 1
sekarang.set(Kalender.DAY_OF_MONTH, 1);
// Dapatkan hari dalam seminggu sekarang
int minggu = sekarang.dapatkan(Kalender.DAY_OF_WEEK);
//Cetak label header kalender
System.out.println("日/t一/t二/t三/t四/t五/t六");
//Cetak spasi sebelum tanggal sekarang
for (int i = Kalender.MINGGU; i < minggu; i++) {
Sistem.keluar.cetak("/t");
}
//Cetak badan kalender
while (now.get(Calendar.MONTH) == bulan) {
int hari = sekarang.dapatkan(Kalender.DAY_OF_MONTH);
//Sejajarkan kalender keluaran, tambahkan spasi jika kurang dari 10
jika (hari < 10) {
// Jika tanggalnya sekarang, tambahkan label
if (hari == hari ini) {
System.out.print(":)" + hari + "(:/t");
} kalau tidak {
System.out.print(" " + hari + "/t");
}
} kalau tidak {
// Jika tanggalnya sekarang, tambahkan label
if (hari == hari ini) {
System.out.print(":)" + hari + "(:/t");
} kalau tidak {
System.out.print("" + hari + "/t");
}
}
// Jika ini hari Sabtu, selesaikan antreannya
if (minggu == Kalender.SABTU) {
Sistem.keluar.println();
}
// Setiap kali tanggal ditampilkan, tambahkan satu hari ke tanggal tersebut
sekarang.tambahkan(Kalender.DAY_OF_MONTH, 1);
// Ambil hari dalam seminggu
minggu = sekarang.dapatkan(Kalender.DAY_OF_WEEK);
}
}
/**
* Dapatkan hari dalam seminggu tanggal 1 Januari tahun ini
*
* @param tahun
* tahun
* @kembali
* @throwsException
*/
public int getJanuaryOne(int tahun) melempar Pengecualian {
int[] hari kerja = { 0, 1, 2, 3, 4, 5, 6 };
Kalender cal = Kalender.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Tanggal dt = sdf.parse(tahun + "-01-01");
cal.setTime(dt);
int w = cal.get(Kalender.DAY_OF_WEEK) - 1;
jika (w < 0)
w = 0;
kembalikan hari kerja[w];
}
/**
* Cetak semua bulan dalam setahun
*/
kekosongan publik printCalendar() {
untuk (int saya = 1; saya <= 12; saya++) {
String bulan = getMonth(i);
printJudul(bulan);
//Cetak bulan dengan 31 hari
jika (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12) {
cetak31();
}
//Cetak bulan dengan 30 hari
lain jika (i == 4 || i == 6 || i == 9 || i == 11) {
cetak30();
}
// cetak Februari
lain jika (i == 2) {
printFebruari();
}
Sistem.keluar.println();
}
}
//Format cetak
// ============== mulai
/**
*Cetak bulan Februari bulan Februari mungkin berbeda tiap tahunnya, sehingga harus diproses secara terpisah.
*/
dilindungi void printFebuary() {
if (tahun ini % 4 == 0) {
// tahun kabisat
printTahun Kabisat();
} kalau tidak {
// tahun biasa
printNonleapYear();
}
}
/**
*Format cetak untuk bulan Februari pada tahun kabisat
*/
kekosongan pribadi printLeapYear() {
untuk (int j = 1; j <= 29; j++) {
Tali tmp = "";
jika (j == 1) {
for (int k = 1; k <= this.whatDayOnJanuaryOne % 7; k++) {
tmp = tmp + " ";
}
tmp = tmp + " " + j + " ";
if (ini.Hari ApaPadaJanuariSatu == 6) {
Sistem.keluar.println(tmp);
} kalau tidak {
Sistem.keluar.cetak(tmp);
}
} lain jika (j > 1 && j < 29) {
if ((hari ini.hari apa pada bulan Januari + j) % 7 == 0) {
Sistem.keluar.println(" " + j);
} kalau tidak {
jika (j < 10) {
Sistem.keluar.cetak(" " + j + " ");
} kalau tidak {
Sistem.keluar.cetak(" " + j + " ");
}
}
} lain jika (j == 29) {
Sistem.keluar.println(" " + j);
this.whatDayOnJanuaryOne = ((this.whatDayOnJanuaryOne + j) % 7);
}
}
}
/**
* Cetak format bulan Februari tahun biasa
*/
kekosongan pribadi printNonleapYear() {
untuk (int j = 1; j <= 28; j++) {
Tali tmp = "";
jika (j == 1) {
for (int k = 1; k <= this.whatDayOnJanuaryOne % 7; k++) {
tmp = tmp + " ";
}
tmp = tmp + " " + j + " ";
if (ini.Hari ApaPadaJanuariSatu == 6) {
Sistem.keluar.println(tmp);
} kalau tidak {
Sistem.keluar.cetak(tmp);
}
} lain jika (j > 1 && j < 28) {
if ((hari ini.hari apa pada bulan Januari + j) % 7 == 0) {
Sistem.keluar.println(" " + j);
} kalau tidak {
jika (j < 10) {
Sistem.keluar.cetak(" " + j + " ");
} kalau tidak {
Sistem.keluar.cetak(" " + j + " ");
}
}
} lain jika (j == 28) {
Sistem.keluar.println(" " + j);
this.whatDayOnJanuaryOne = ((this.whatDayOnJanuaryOne + j) % 7);
}
}
}
/**
* Cetak bulan dengan 30 hari
*/
dilindungi kekosongan print30() {
untuk (int j = 1; j <= 30; j++) {
Tali tmp = "";
jika (j == 1) {
for (int k = 1; k <= this.whatDayOnJanuaryOne % 7; k++) {
tmp = tmp + " ";
}
tmp = tmp + " " + j + " ";
if (ini.Hari ApaPadaJanuariSatu == 6) {
Sistem.keluar.println(tmp);
} kalau tidak {
Sistem.keluar.cetak(tmp);
}
} lain jika (j > 1 && j < 30) {
if ((hari ini.hari apa pada bulan Januari + j) % 7 == 0) {
Sistem.keluar.println(" " + j);
} kalau tidak {
jika (j < 10) {
Sistem.keluar.cetak(" " + j + " ");
} kalau tidak {
Sistem.keluar.cetak(" " + j + " ");
}
}
} lain jika (j == 30) {
Sistem.keluar.println(" " + j);
this.whatDayOnJanuaryOne = ((this.whatDayOnJanuaryOne + j) % 7);
}
}
}
/**
* Cetak bulan dengan 31 hari
*/
dilindungi kekosongan print31() {
untuk (int j = 1; j <= 31; j++) {
Tali tmp = "";
jika (j == 1) {
for (int k = 1; k <= this.whatDayOnJanuaryOne % 7; k++) {
tmp = tmp + " ";
}
tmp = tmp + " " + j + " ";
if (ini.Hari ApaPadaJanuariSatu == 6) {
Sistem.keluar.println(tmp);
} kalau tidak {
Sistem.keluar.cetak(tmp);
}
} lain jika (j > 1 && j < 31) {
if ((hari ini.hari apa pada bulan Januari + j) % 7 == 0) {
Sistem.keluar.println(" " + j);
} kalau tidak {
jika (j < 10) {
Sistem.keluar.cetak(" " + j + " ");
} kalau tidak {
Sistem.keluar.cetak(" " + j + " ");
}
}
} lain jika (j == 31) {
Sistem.keluar.println(" " + j);
this.whatDayOnJanuaryOne = ((this.whatDayOnJanuaryOne + j) % 7);
}
}
}
/**
*Cetak judul tiap bulan
*
* @param bulan
*/
protected void printTitle(String bulan) {
System.out.println(" " + bulan + " " + ini.tahun + " ");
Sistem.keluar.println("------------------------------------------- -- --");
System.out.println("Minggu Senin Selasa Rabu Kamis Jumat Sabtu");
}
//Format cetak
// ================ akhir
/**
* Dapatkan nama bahasa Inggris bulan ini
*
* @param m
* Representasi numerik bulan ini
* @kembali
*/
String publik getBulan(int m) {
String bulan = "";
saklar (m) {
kasus 1:
bulan = JANUARI;
merusak;
kasus 2:
bulan = FEBUARY;
merusak;
kasus 3:
bulan = MARET;
merusak;
kasus 4:
bulan = APRIL;
merusak;
kasus 5:
bulan = MEI;
merusak;
kasus 6:
bulan = JUNI;
merusak;
kasus 7:
bulan = JULI;
merusak;
kasus 8:
bulan = AGUSTUS;
merusak;
kasus 9:
bulan = SEPTEMBER;
merusak;
kasus 10:
bulan = OKTOBER;
merusak;
kasus 11:
bulan = NOVEMBER;
merusak;
kasus 12:
bulan = DESEMBER;
merusak;
}
bulan kembali;
}
publik int getYear() {
tahun kembali;
}
public void setYear(int tahun) {
this.year = tahun;
}
publik int getWhatDayOnJanuaryOne() {
kembalikan WhatDayOnJanuaryOne;
}
public void setWhatDayOnJanuaryOne(int WhatDayOnJanuaryOne) {
this.whatDayOnJanuaryOne = WhatDayOnJanuaryOne;
}
}