ユーザーが完全にカスタマイズしたカレンダーのJava実装(年のカレンダー、月のカレンダー)

1 Star2 Stars3 Stars4 Stars5 Stars (まだ評価されていません)
Loading...

ユーザーは、特定の年のカレンダーの印刷をカスタマイズすることができます。つまり、特定の年のカレンダーをすべて印刷することができます。

たとえば、次のように2013年のカレンダーを印刷します。
コードを次のようにコピーします。
2013年1月
—————
月曜日火曜日水曜日金曜日土曜日
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

2013年2月
—————
月曜日火曜日水曜日金曜日土曜日
2
4 5 6 7 8 9
11 12 13 14 15 16
18 19 20 21 22 23
25 26 27 28

2013年3月
—————
月曜日火曜日水曜日金曜日土曜日
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

2013年4月
—————
月曜日火曜日水曜日金曜日土曜日
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

2013年5月
—————
月曜日火曜日水曜日金曜日土曜日
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

2013年6月
—————
月曜日火曜日水曜日金曜日土曜日

3 4 5 6 7 8
10 11 12 13 14 15
17 18 19 20 21 22
24 25 26 27 28 29

2013年7月
—————
月曜日火曜日水曜日金曜日土曜日
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

2013年8月
—————
月曜日火曜日水曜日金曜日土曜日
2 3
5 6 7 8 9 10
12 13 14 15 16 17
19 20 21 22 23 24
26 27 28 29 30 31

2013年9月
—————
月曜日火曜日水曜日金曜日土曜日
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

2013年10月
—————
月曜日火曜日水曜日金曜日土曜日
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

2013年11月
—————
月曜日火曜日水曜日金曜日土曜日
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

2013年12月
—————
月曜日火曜日水曜日金曜日土曜日
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

もちろん、ユーザーがカレンダーを1ヶ月間印刷したい場合は、同じことが達成できます。

印刷など:2014年1月のカレンダー
コードを次のようにコピーします。
1日2 3 4 5 6
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

ユーザーは、今月のカレンダーを印刷することもできます

今日は:2013-04-27、今月のカレンダーは次のように表示されます:
コードを次のようにコピーします。
1日2 3 4 5 6
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

はい、あなたは誤解されていない、27日には日の日付である看板があります…..

以下のコードセクションを入力してください:

============================================================= ======

コード部分:

============================================================= ======

/UUUUUU_Test/src/com/b510/date/HongtenDate.java
コードを次のようにコピーします。
/ **
*
* /
パッケージcom.b510.date;

java.text.SimpleDateFormatをインポートします。
Import java.util.Calendar;
Import java.util.Date;
java.util.GregorianCalendarをインポートします。

/ **
*コンストラクタ<code> HongtenDate()</ code>がデフォルトで現在の年に設定されている日付処理クラス<br>
* <code> HongtenDate(int year)</ code>では、年をカスタマイズすることができます<br>
*
* <pre>
* HongtenDateの日付=新しいHongtenDate();
* </ pre>
*
*または<br>
*
* <pre>
* HongtenDate hd =新しいHongtenDate(2014年);
* </ pre>
*
*年の日付を印刷するには<code> printCalendar()</ code>を呼び出します<br> <br> <br>
*現在の月の日付を印刷するには<code> printCurrentMonth()</ code>を呼び出します<br> <br>
*、もちろん、あなたはまた電話することができます
* <code> printMonthOfYear()</ code>は、月を印刷するためのパラメータを設定します<br> <br> <br>
*いくつかの参考オプションがあります:<br>
*
* <pre>
* / /パラメータはありません。システムは現在の年をデフォルトにします。
* HongtenDateの日付=新しいHongtenDate();
* date.printCalendar();
* date.printCurrentMonth();
* date.printMonthOfYear(4);
* </ pre>
*
*または<br>
*
* <pre>
* // 2014年に設定
* HongtenDate hd =新しいHongtenDate(2014年);
* hd.printCurrentMonth();
* hd.printMonthOfYear(1);
* </ pre>
*
* @date 2013-4-27
* @author hongten
*
* /
パブリッククラスHongtenDate {

// MONTHS
// ==================================
パブリックstatic final String JANUARY = "January";
パブリックstatic final String FEBUARY = "2月";
パブリックstatic final String MARCH = "March";
パブリックstatic final String APRIL = "April";
パブリックstatic final String MAY = "May";
パブリックstatic final String JUN = "Jun";
パブリックstatic final String JULY = "July";
パブリックstatic final String AUGUST = "August";
パブリック静的最終文字列SEPTERMBER = "Septermber";
パブリックstatic final String OCTOBER = "10月";
パブリックstatic final String NOVEMBER = "November";
パブリックstatic final String DECEMBER = "December";

/ **
*年
* /
プライベートint年;
/ **
* 1月1日の曜日(例:2013-01-01->火曜日、<code> whatDayOnJanuaryOne = 2; </ code>)
* /
プライベートint whatDayOnJanuaryOne;

// main
// ============================
パブリックstatic void main(String [] args)例外をスローします{
//パラメータはありません。システムのデフォルトは現在の年です。
HongtenDate date =新しいHongtenDate();
// date.printCalendar();
date.printCurrentMonth();
// date.printMonthOfYear(4);

// 2014に設定
HongtenDate hd =新しいHongtenDate(2014年);
// hd.printCurrentMonth();
// hd.printMonthOfYear(1);

}

//パラメータはありません。システムのデフォルトは現在の年です。
public HongtenDate(){
Calendar cal = Calendar.getInstance();
This.year = cal.get(Calendar.YEAR);
{
setWhatDayOnJanuaryOne(getJanuaryOne(year));
} catch(例外e){
e.printStackTrace();
}
}

//パラメータを設定し、年を設定します。
Public HongtenDate(int year){
今年。
{
setWhatDayOnJanuaryOne(getJanuaryOne(year));
} catch(例外e){
e.printStackTrace();
}
}

/ **
* 1か月のすべての日付を印刷する
*
* @param mon
*月
* @throws例外
* /
public void printMonthOfYear(int mon)throws Exception {
もし(mon <1 || mon> 12){
System.out.println( "[+ mon +"]を入力した月が間違っています。チェックインしてください…. ");
戻る;
}
GregorianCalendar now =新しいGregorianCalendar();
// Dateオブジェクトを取得する
SimpleDateFormat sdf =新しいSimpleDateFormat( "yyyy-MM-dd");
日付日付= sdf.parse(年+ " – " +月+ "-01");
//現在の時刻を設定する
now.setTime(date);
//現在の月を日付から取得する
Int month = now.get(Calendar.MONTH);
//現在の日付を1に設定する
Now.set(Calendar.DAY_OF_MONTH、1);
//今すぐ取得するのは曜日です
Int week = now.get(Calendar.DAY_OF_WEEK);
//カレンダーヘッダーを出力する
System.out.println( "日\ t \ t2 \ ttree \ tfour \ tfive \ t6");
//現在の日付の前にスペースを表示する
For(int i = Calendar.SUNDAY; i <week; i ++){
System.out.print( "\ t");
}
//カレンダー本文を印刷する
while(now.get(Calendar.MONTH)==月){
Int day = now.get(Calendar.DAY_OF_MONTH);
//出力カレンダーに10未満のスペースを加えて整列させる
もし(日<10){
System.out.print( "" "+ day +" \ t ");
}その他{
System.out.print( "" + day + "\ t");
}
//土曜日の場合は改行
If(week == Calendar.SATURDAY){
System.out.println();
}
//各日付の1日後に日付を増やす
Now.add(Calendar.DAY_OF_MONTH、1);
//週の最初の数日を取り戻す
Week = now.get(Calendar.DAY_OF_WEEK);
}
}

/ **
*今月のすべての日付を印刷します。これはユーザーが設定した年までには変更されません
* /
public void printCurrentMonth(){
GregorianCalendar now =新しいGregorianCalendar();
// Dateオブジェクトを取得する
日付日付=新しい日付();
//現在の時刻を設定する
now.setTime(date);
//日付か​​ら現在の日付を取得する
Int toDay = now.get(Calendar.DAY_OF_MONTH);
//現在の月を日付から取得する
Int month = now.get(Calendar.MONTH);
//現在の日付を1に設定する
Now.set(Calendar.DAY_OF_MONTH、1);
//今週は最初の数日です
Int week = now.get(Calendar.DAY_OF_WEEK);
//カレンダーのヘッドマークを印刷する
System.out.println( "日\ t \ t2 \ ttree \ tfour \ tfive \ t6");
//現在の日付の前にスペースを表示する
For(int i = Calendar.SUNDAY; i <week; i ++){
System.out.print( "\ t");
}
//カレンダー本文を印刷する
while(now.get(Calendar.MONTH)==月){
Int day = now.get(Calendar.DAY_OF_MONTH);
//出力カレンダーに10未満のスペースを加えて整列させる
もし(日<10){
//現在の日付であれば、ラベルに加えて
If(day == toDay){
System.out.print( ":)" +日+ "(:\ t");
}その他{
System.out.print( "" "+ day +" \ t ");
}
}その他{
//現在の日付であれば、ラベルに加えて
If(day == toDay){
System.out.print( ":)" +日+ "(:\ t");
}その他{
System.out.print( "" + day + "\ t");
}
}
//土曜日の場合は改行
If(week == Calendar.SATURDAY){
System.out.println();
}
//各日付の1日後に日付を増やす
Now.add(Calendar.DAY_OF_MONTH、1);
//週の最初の数日を取り戻す
Week = now.get(Calendar.DAY_OF_WEEK);
}
}

/ **
* 1月1日の年の日数を取得する
*
* @param年
*年
* @return
* @throws例外
* /
public int getJanuaryOne(int year)throws Exception {
Int [] weekDays = {0、1、2、3、4、5、6};
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf =新しいSimpleDateFormat( "yyyy-MM-dd");
日付dt = sdf.parse(年+ "-01-01");
cal.setTime(dt);
Int w = cal.get(Calendar.DAY_OF_WEEK) – 1;
(w <0)
w = 0;
週日を返す[w];
}

/ **
*すべての年の印刷
* /
public void printCalendar(){
For(int i = 1; i <= 12; i ++){
文字列month = getMonth(i);
printTitle(月);
// 31日の月を印刷する
if(i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12){
Print31();
}
// 30日の月を印刷する
そうでなければ、if(i == 4 || i == 6 || i == 9 || i == 11){
Print30();
}
// 2月を印刷する
そうでなければif(i == 2){
printFebuary();
}
System.out.println();
}
}

//印刷形式
// =====================================================
/ **
*印刷2月、2月は毎年同じではない可能性がありますので、個別に対処する必要があります
* /
保護されたvoid printFebuary(){
もし(this.year%4 == 0){
//年の年
printLeapYear();
}その他{
//ウィークリー
printNonleapYear();
}
}

/ **
*来年2月の印刷フォーマット
* /
プライベートvoid printLeapYear(){
for(int j = 1; j <= 29; j ++){
文字列tmp = "";
if(j == 1){
For(int k = 1; k <= this.whatDayOnJanuaryOne%7; k ++){
Tmp = tmp + "";
}
Tmp = tmp + "" + j + "";
もし(this.whatDayOnJanuaryOne == 6){
System.out.println(tmp);
}その他{
System.out.print(tmp);
}
} else if(j> 1 && j <29){

もし((this.whatDayOnJanuaryOne + j)%7 == 0){
System.out.println( "" + j);
}その他{
(j <10){
System.out.print( "" "+ j +" ");
}その他{
System.out.print( "" "+ j +" ");
}
}
}それ以外の場合(j == 29){
System.out.println( "" + j);
this.whatDayOnJanuaryOne =((this.whatDayOnJanuaryOne + j)%7);
}
}
}

/ **
* 2月の形式を印刷する
* /
プライベートvoid printNonleapYear(){
for(int j = 1; j <= 28; j ++){
文字列tmp = "";
if(j == 1){
For(int k = 1; k <= this.whatDayOnJanuaryOne%7; k ++){
Tmp = tmp + "";
}
Tmp = tmp + "" + j + "";
もし(this.whatDayOnJanuaryOne == 6){
System.out.println(tmp);
}その他{
System.out.print(tmp);
}
} else if(j> 1 && j <28){

もし((this.whatDayOnJanuaryOne + j)%7 == 0){
System.out.println( "" + j);
}その他{
(j <10){
System.out.print( "" "+ j +" ");
}その他{
System.out.print( "" "+ j +" ");
}
}
}それ以外の場合(j == 28){
System.out.println( "" + j);
this.whatDayOnJanuaryOne =((this.whatDayOnJanuaryOne + j)%7);
}
}
}

/ **
* 30日間の月を印刷します
* /
プロテクトvoid print30(){
For(int j = 1; j <= 30; j ++){
文字列tmp = "";
if(j == 1){
For(int k = 1; k <= this.whatDayOnJanuaryOne%7; k ++){
Tmp = tmp + "";
}
Tmp = tmp + "" + j + "";
もし(this.whatDayOnJanuaryOne == 6){
System.out.println(tmp);
}その他{
System.out.print(tmp);
}
}そうでなければ(j> 1 && j <30){

もし((this.whatDayOnJanuaryOne + j)%7 == 0){
System.out.println( "" + j);
}その他{
(j <10){
System.out.print( "" + j + "");
}その他{
System.out.print( "" + j + "");
}
}
} else if(j == 30){
System.out.println( "" + j);
this.whatDayOnJanuaryOne =((this.whatDayOnJanuaryOne + j)%7);
}
}
}

/ **
* 31日の月を印刷します
* /
保護されたvoid print31(){
For(int j = 1; j <= 31; j ++){
文字列tmp = "";
if(j == 1){
For(int k = 1; k <= this.whatDayOnJanuaryOne%7; k ++){
Tmp = tmp + "";
}
Tmp = tmp + "" + j + "";
もし(this.whatDayOnJanuaryOne == 6){
System.out.println(tmp);
}その他{
System.out.print(tmp);
}
}それ以外の場合(j> 1 && j <31){

もし((this.whatDayOnJanuaryOne + j)%7 == 0){
System.out.println( "" + j);
}その他{
(j <10){
System.out.print( "" "+ j +" ");
}その他{
System.out.print( "" "+ j +" ");
}
}
}それ以外の場合(j == 31){
System.out.println( "" + j);
this.whatDayOnJanuaryOne =((this.whatDayOnJanuaryOne + j)%7);
}
}
}

/ **
*毎月のタイトルを印刷する
*
* @param月
* /
保護されたvoid printTitle(文字列月){
System.out.println( "" + month + "" + this.year + "");
System.out.println( "—————");
System.out.println( "Sun Mon Tue Wed Thu Fri Sat");
}

//印刷形式
// ================================================

/ **
*今月の英語名を取得する
*
* @param m
*月の数値表現
* @return
* /
パブリックストリングgetMonth(int m){
String month = "";
スイッチ(m){
ケース1:
月= JANUARY;
休憩。
ケース2:
月= FEBUARY;
休憩。
ケース3:
月= 3月。
休憩。
ケース4:
月= APRIL;
休憩。
ケース5:
月= MAY;
休憩。
ケース6:
月= JUN;
休憩。
ケース7:
月= 7月。
休憩。
ケース8:
月= AUGUST;
休憩。
ケース9:
月= SEPTERMBER;
休憩。
ケース10:
月= 10月。
休憩。
ケース11:
月= NOVEMBER;
休憩。
ケース12:
月= DECEMBER;
休憩。
}
月を返す。
}

public int getYear(){
年を返す。
}

public void setYear(int year){
今年。
}

パブリックint getWhatDayOnJanuaryOne(){
返すwhatDayOnJanuaryOne;
}

public void setWhatDayOnJanuaryOne(int whatDayOnJanuaryOne){
this.whatDayOnJanuaryOne = whatDayOnJanuaryOne;
}

}


1 Star2 Stars3 Stars4 Stars5 Stars (まだ評価されていません)
Loading...
      この投稿は審査処理中  | 元のサイトへ