يمكن للمستخدمين تخصيص وطباعة التقويم لسنة معينة، أي طباعة التقويم بأكمله لسنة معينة.
على سبيل المثال، قم بطباعة تقويم 2013 على النحو التالي:
فبراير 2013
----------------------------------------
الأحد، الإثنين، الثلاثاء، الأربعاء، الخميس، الجمعة، السبت
2
4 5 6 7 8 9
11 12 13 14 15 16
18 19 20 21 22 23
25 26 27 28
مارس 2013
----------------------------------------
الأحد، الإثنين، الثلاثاء، الأربعاء، الخميس، الجمعة، السبت
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
----------------------------------------
الأحد، الإثنين، الثلاثاء، الأربعاء، الخميس، الجمعة، السبت
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
----------------------------------------
الأحد، الإثنين، الثلاثاء، الأربعاء، الخميس، الجمعة، السبت
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
----------------------------------------
الأحد، الإثنين، الثلاثاء، الأربعاء، الخميس، الجمعة، السبت
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
----------------------------------------
الأحد، الإثنين، الثلاثاء، الأربعاء، الخميس، الجمعة، السبت
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
----------------------------------------
الأحد، الإثنين، الثلاثاء، الأربعاء، الخميس، الجمعة، السبت
ثلاثة وعشرين
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
----------------------------------------
الأحد، الإثنين، الثلاثاء، الأربعاء، الخميس، الجمعة، السبت
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
----------------------------------------
الأحد، الإثنين، الثلاثاء، الأربعاء، الخميس، الجمعة، السبت
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
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
----------------------------------------
الأحد، الإثنين، الثلاثاء، الأربعاء، الخميس، الجمعة، السبت
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
مثل الطباعة: التقويم لشهر يناير 2014
اليوم هو: 27-04-2013، ثم تتم طباعة تقويم الشهر الحالي على النحو التالي:
الآن أدخل جزء الكود:
================================================================================================== ======
جزء الكود:
================================================================================================== ======
/UUUUUU_Test/src/com/b510/date/HongtenDate.java
import java.text.SimpleDateFormat;
استيراد java.util.Calendar؛
import java.util.Date;
import java.util.GregorianCalendar;
/**
* فئة معالجة التاريخ في هذه الفئة، سيقوم المُنشئ <code>HongtenDate()</code> بتعيين السنة إلى السنة الحالية افتراضيًا<br>
* و<code>HongtenDate(int year)</code>، يمكنك تخصيص السنة<br>
*
* <قبل>
* تاريخ HongtenDate = HongtenDate الجديد ()؛
* </ما قبل>
*
* أو<br>
*
* <قبل>
* HongtenDate hd = HongtenDate الجديد (2014)؛
* </ما قبل>
*
* اتصل بـ <code>printCalendar()</code> لطباعة تاريخ السنة<br>
* اتصل بـ <code>printCurrentMonth()</code> لطباعة تاريخ الشهر الحالي<br>
*وبالطبع يمكنك أيضًا الاتصال<br>
* <code>printMonthOfYear()</code>قم بتعيين معلمة لطباعة تاريخ شهر معين<br>
* فيما يلي بعض الخطط المرجعية:<br>
*
* <قبل>
* // لا توجد معلمات، النظام الافتراضي هو العام الحالي
* تاريخ HongtenDate = HongtenDate الجديد ()؛
* تاريخ.printCalendar();
* تاريخ.printCurrentMonth();
* تاريخ.printMonthOfYear(4);
* </ما قبل>
*
* أو<br>
*
* <قبل>
* // اضبط على 2014
* HongtenDate hd = HongtenDate الجديد (2014)؛
* hd.printCurrentMonth();
* hd.printMonthOfYear(1);
* </ما قبل>
*
*@التاريخ 27-4-2013
* @ المؤلف هونغتن
*
*/
الطبقة العامة HongtenDate {
//شهور
// ======================================================================================
السلسلة النهائية العامة الثابتة JANUARY = "January";
السلسلة النهائية العامة الثابتة FEBUARY = "February";
السلسلة النهائية العامة الثابتة MARCH = "March";
السلسلة النهائية العامة الثابتة APRIL = "April";
السلسلة النهائية العامة الثابتة MAY = "May";
السلسلة النهائية العامة الثابتة JUN = "Jun";
السلسلة النهائية العامة الثابتة JULY = "July";
السلسلة النهائية العامة الثابتة AUGUST = "August";
السلسلة النهائية العامة الثابتة SEPTERMBER = "سبتمبر"؛
السلسلة النهائية العامة الثابتة OCTOBER = "October";
السلسلة النهائية العامة الثابتة نوفمبر = "نوفمبر"؛
السلسلة النهائية العامة الثابتة ديسمبر = "ديسمبر"؛
/**
* سنة
*/
سنة خاصة؛
/**
* يوم الأسبوع في الأول من يناير (على سبيل المثال: 01-01-2013-->الثلاثاء، لذا <code>whatDayOnJanuaryOne = 2;</code>)
*/
كثافة العمليات الخاصة WhatDayOnJanuaryOne؛
// رئيسي
// ===============================================================================
public static void main(String[] args) يطرح الاستثناء {
// لا توجد معلمات، النظام الافتراضي هو العام الحالي
تاريخ HongtenDate = جديد HongtenDate();
//date.printCalendar();
printCurrentMonth();
// date.printMonthOfYear(4);
// اضبط على 2014
HongtenDate hd = new HongtenDate(2014);
// hd.printCurrentMonth();
// hd.printMonthOfYear(1);
}
// لا توجد معلمات، النظام الافتراضي هو العام الحالي
تاريخ هونغتن العام () {
التقويم كال = Calendar.getInstance();
this.year = cal.get(Calendar.YEAR);
يحاول {
setWhatDayOnJanuaryOne(getJanuaryOne(year));
} قبض (الاستثناء ه) {
printStackTrace();
}
}
// مع المعلمات، قم بتعيين السنة
عام HongtenDate(int سنة) {
this.year = year;
يحاول {
setWhatDayOnJanuaryOne(getJanuaryOne(year));
} قبض (الاستثناء ه) {
printStackTrace();
}
}
/**
* طباعة جميع تواريخ شهر معين
*
* @parammon
* شهر
* @throwsException
*/
public void printMonthOfYear(int mon) يطرح الاستثناء {
إذا (الاثنين < 1 || الاثنين > 12) {
System.out.println("الشهر الذي أدخلته [" + mon + "] خاطئ، يرجى التحقق من التقدم...");
يعود؛
}
GregorianCalendar now = new GregorianCalendar();
// احصل على كائن التاريخ
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
التاريخ date = sdf.parse(year + "-" + mon + "-01");
//ضبط الوقت الحالي
now.setTime(date);
// احصل على الشهر الحالي من التاريخ
int Month = now.get(Calendar.MONTH);
// اضبط تاريخ الآن على 1
now.set(Calendar.DAY_OF_MONTH, 1);
// احصل على يوم الأسبوع الآن
intweek = now.get(Calendar.DAY_OF_WEEK);
// طباعة تسمية رأس التقويم
System.out.println("تم/t一/t二/t三/t四/t五/t六");
// اطبع المسافة قبل التاريخ الحالي
لـ (int i = Calendar.SUNDAY; i <week; i++) {
System.out.print("/t");
}
// اطبع نص التقويم
بينما (now.get(Calendar.MONTH) == شهر) {
int day = now.get(Calendar.DAY_OF_MONTH);
// قم بمحاذاة تقويم الإخراج، وأضف مسافة إذا كانت أقل من 10
إذا (يوم <10) {
System.out.print(" " + day + "/t");
} آخر {
System.out.print("" + day + "/t");
}
// إذا كان يوم السبت، قم بلف السطر
إذا (الأسبوع == التقويم. السبت) {
System.out.println();
}
// في كل مرة يتم فيها إخراج التاريخ، أضف يومًا واحدًا إلى التاريخ
now.add(Calendar.DAY_OF_MONTH, 1);
// استرداد يوم الأسبوع
week = now.get(Calendar.DAY_OF_WEEK);
}
}
/**
* طباعة جميع تواريخ الشهر الحالي، ولن يتغير ذلك حسب السنة التي يحددها المستخدم
*/
طباعة الفراغ العامCurrentMonth () {
GregorianCalendar now = new GregorianCalendar();
// احصل على كائن التاريخ
تاريخ التاريخ = تاريخ جديد ()؛
//ضبط الوقت الحالي
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);
// احصل على يوم الأسبوع الآن
intweek = now.get(Calendar.DAY_OF_WEEK);
// طباعة تسمية رأس التقويم
System.out.println("تم/t一/t二/t三/t四/t五/t六");
// اطبع المسافة قبل التاريخ الحالي
لـ (int i = Calendar.SUNDAY; i <week; i++) {
System.out.print("/t");
}
// اطبع نص التقويم
بينما (now.get(Calendar.MONTH) == شهر) {
int day = now.get(Calendar.DAY_OF_MONTH);
// قم بمحاذاة تقويم الإخراج، وأضف مسافة إذا كانت أقل من 10
إذا (يوم <10) {
// إذا كان هو التاريخ الحالي، أضف تسمية
إذا (اليوم == اليوم) {
System.out.print(":)" + day + "(:/t");
} آخر {
System.out.print(" " + day + "/t");
}
} آخر {
// إذا كان هو التاريخ الحالي، أضف تسمية
إذا (اليوم == اليوم) {
System.out.print(":)" + day + "(:/t");
} آخر {
System.out.print("" + day + "/t");
}
}
// إذا كان يوم السبت، قم بلف السطر
إذا (الأسبوع == التقويم. السبت) {
System.out.println();
}
// في كل مرة يتم فيها إخراج التاريخ، أضف يومًا واحدًا إلى التاريخ
now.add(Calendar.DAY_OF_MONTH, 1);
// استرداد يوم الأسبوع
week = now.get(Calendar.DAY_OF_WEEK);
}
}
/**
* احصل على يوم الأسبوع الذي يكون فيه الأول من يناير من هذا العام
*
* @param سنة
* سنة
* @يعود
* @throwsException
*/
public int getJanuaryOne(int year) يطرح الاستثناء {
int[]weekDays = { 0, 1, 2, 3, 4, 5, 6 };
التقويم كال = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
التاريخ dt = sdf.parse(year + "-01-01");
cal.setTime(dt);
int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
إذا (ث <0)
ث = 0؛
أيام الأسبوع العودة[ث];
}
/**
* طباعة كافة أشهر السنة
*/
طباعة الفراغ العام () {
لـ (int i = 1; i <= 12; i++) {
سلسلة الشهر = getMonth(i);
printTitle(month);
// طباعة الأشهر بـ 31 يومًا
إذا (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12) {
print31();
}
// اطبع الشهر بـ 30 يومًا
وإلا إذا (i == 4 || i == 6 || i == 9 || i == 11) {
print30();
}
// طباعة فبراير
وإلا إذا (ط == 2) {
printFebuary();
}
System.out.println();
}
}
// تنسيق الطباعة
// ==================================== البدء
/**
* قد يختلف شهر فبراير من كل عام، لذلك يجب معالجته بشكل منفصل.
*/
طباعة باطلة محمية فبراير () {
إذا (هذا العام % 4 == 0) {
// سنة كبيسة
printLeapYear();
} آخر {
// سنة عادية
printNonleapYear();
}
}
/**
*تنسيق الطباعة لشهر فبراير في السنة الكبيسة
*/
طباعة باطلة خاصة ()LeapYear () {
لـ (int j = 1; j <= 29; j++) {
سلسلة تمب = ""؛
إذا (ي == 1) {
for (int k = 1; k <= this.whatDayOnJanuaryOne % 7; k++) {
تمة = تمة + " "؛
}
tmp = tmp + " " + j + " "؛
إذا (this.whatDayOnJanuaryOne == 6) {
System.out.println(tmp);
} آخر {
System.out.print(tmp);
}
} وإلا إذا (ي > 1 && ي < 29) {
إذا ((this.whatDayOnJanuaryOne + j) % 7 == 0) {
System.out.println(" " + j);
} آخر {
إذا (ي < 10) {
System.out.print(" " + j + " ");
} آخر {
System.out.print(" " + j + " ");
}
}
} وإلا إذا (ي == 29) {
System.out.println(" " + j);
this.whatDayOnJanuaryOne = ((this.whatDayOnJanuaryOne + j) % 7);
}
}
}
/**
* طباعة شكل شهر فبراير بالسنوات العادية
*/
طباعة باطلة خاصةNonleapYear() {
لـ (int j = 1; j <= 28; j++) {
سلسلة تمب = ""؛
إذا (ي == 1) {
for (int k = 1; k <= this.whatDayOnJanuaryOne % 7; k++) {
تمة = تمة + " "؛
}
tmp = tmp + " " + j + " "؛
إذا (this.whatDayOnJanuaryOne == 6) {
System.out.println(tmp);
} آخر {
System.out.print(tmp);
}
} وإلا إذا (ي > 1 && ي < 28) {
إذا ((this.whatDayOnJanuaryOne + j) % 7 == 0) {
System.out.println(" " + j);
} آخر {
إذا (ي < 10) {
System.out.print(" " + j + " ");
} آخر {
System.out.print(" " + j + " ");
}
}
} وإلا إذا (ي == 28) {
System.out.println(" " + j);
this.whatDayOnJanuaryOne = ((this.whatDayOnJanuaryOne + j) % 7);
}
}
}
/**
* طباعة الأشهر بـ 30 يومًا
*/
طباعة باطلة محمية 30 () {
لـ (int j = 1; j <= 30; j++) {
سلسلة تمب = ""؛
إذا (ي == 1) {
for (int k = 1; k <= this.whatDayOnJanuaryOne % 7; k++) {
تمة = تمة + " "؛
}
tmp = tmp + " " + j + " "؛
إذا (this.whatDayOnJanuaryOne == 6) {
System.out.println(tmp);
} آخر {
System.out.print(tmp);
}
} وإلا إذا (ي > 1 && ي < 30) {
إذا ((this.whatDayOnJanuaryOne + j) % 7 == 0) {
System.out.println(" " + j);
} آخر {
إذا (ي < 10) {
System.out.print(" " + j + " ");
} آخر {
System.out.print(" " + j + " ");
}
}
} وإلا إذا (ي == 30) {
System.out.println(" " + j);
this.whatDayOnJanuaryOne = ((this.whatDayOnJanuaryOne + j) % 7);
}
}
}
/**
* طباعة الأشهر بعدد 31 يوم
*/
طباعة باطلة محمية 31 () {
لـ (int j = 1; j <= 31; j++) {
سلسلة تمب = ""؛
إذا (ي == 1) {
for (int k = 1; k <= this.whatDayOnJanuaryOne % 7; k++) {
تمة = تمة + " "؛
}
tmp = tmp + " " + j + " "؛
إذا (this.whatDayOnJanuaryOne == 6) {
System.out.println(tmp);
} آخر {
System.out.print(tmp);
}
} وإلا إذا (ي > 1 && ي < 31) {
إذا ((this.whatDayOnJanuaryOne + j) % 7 == 0) {
System.out.println(" " + j);
} آخر {
إذا (ي < 10) {
System.out.print(" " + j + " ");
} آخر {
System.out.print(" " + j + " ");
}
}
} وإلا إذا (ي == 31) {
System.out.println(" " + j);
this.whatDayOnJanuaryOne = ((this.whatDayOnJanuaryOne + j) % 7);
}
}
}
/**
*طباعة عنوان كل شهر
*
* @param الشهر
*/
عنوان الطباعة الفارغ المحمي (شهر السلسلة) {
System.out.println(" " + شهر + " " + this.year + " ");
System.out.println("------------------------------------------ -- --");
System.out.println("الأحد، الثلاثاء، الأربعاء، الخميس، الجمعة، السبت");
}
// تنسيق الطباعة
// ==================================================================================================
/**
* احصل على الاسم الإنجليزي للشهر
*
* @param م
* التمثيل العددي للشهر
* @يعود
*/
سلسلة عامة getMonth(int m) {
سلسلة الشهر = ""؛
التبديل (م) {
الحالة 1:
الشهر = يناير؛
استراحة؛
الحالة 2:
الشهر = فبراير؛
استراحة؛
الحالة 3:
الشهر = مارس؛
استراحة؛
الحالة 4:
الشهر = أبريل؛
استراحة؛
الحالة 5:
الشهر = مايو؛
استراحة؛
الحالة 6:
الشهر = يونيو؛
استراحة؛
الحالة 7:
الشهر = يوليو؛
استراحة؛
الحالة 8:
الشهر = أغسطس؛
استراحة؛
الحالة 9:
الشهر = سبتمبر؛
استراحة؛
الحالة 10:
الشهر = أكتوبر؛
استراحة؛
الحالة 11:
الشهر = نوفمبر؛
استراحة؛
الحالة 12:
الشهر = ديسمبر؛
استراحة؛
}
شهر العودة؛
}
كثافة العمليات العامة getYear() {
سنة العودة؛
}
مجموعة الفراغ العام (int year) {
this.year = year;
}
كثافة العمليات العامة getWhatDayOnJanuaryOne() {
إرجاع ماDayOnJanuaryOne؛
}
مجموعة الفراغ العامWhatDayOnJanuaryOne(int WhatDayOnJanuaryOne) {
this.whatDayOnJanuaryOne = WhatDayOnJanuaryOne;
}
}