Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Date - تمثل تاريخ يوم في السنة
- public class Date {
- private int day; // عدد صحيح يمثل اليوم في الشهر (1 حتى 31)
- private int month; // عدد صحيح يمثل الشهر(1 حتى 12)
- // عملية تتلقي اليوم والشهر وتقوم ببناء تاريخ مناسب
- // لا حاجة لفحص صحة المعطيات
- public Date(int day, int month) {
- this.day = day;
- this.month = month;
- }
- // عملية تبني تاريخ يمثل أول يوم في السنة
- public Date() {
- this(1, 1);
- }
- // تعيد العملية اليوم من التاريخ الحالي
- public int getDay() {
- return day;
- }
- // تعيد العملية الشهر من التاريخ الحالي
- public int getMonth() {
- return month;
- }
- // تتلقى العملية عددا صحيحا يمثل يوم في الشهر وتقوم بحتلنة اليوم في التاريخ
- // الحالي
- // لا حاجة لفحص صحة المعطيات
- public void setDay(int day) {
- this.day = day;
- }
- // تتلقى العملية عددا صحيحا يمثل رقم الشهر وتقوم بحتلنة الشهر في التاريخ الحالي
- // لا حاجة لفحص صحة المعطيات
- public void setMonth(int month) {
- this.month = month;
- }
- // تتلقى العملية تاريخ وتعيد صدق إذا كان التاريخ الحالي قبل التاريخ الذي تم
- // تلقيه كبارامتر, خلاف ذلك تعيد العملية كذب
- public boolean before(Date date) {
- if (this.month < date.month)
- return true;
- return (this.day < date.day);
- }
- // تتلقى العملية تاريخ وتعيد صدق إذا كان التاريخ الحالي بعد التاريخ الذي تم
- // تلقيه كبارامتر, خلاف ذلك تعيد العملية كذب
- public boolean after(Date date) {
- if (this.month > date.month)
- return true;
- return (this.day > date.day);
- }
- // تعيد العملية تاريخ اليوم الذي يلي التاريخ الحالي
- public Date nextDate() {
- return this.dateAfter(1);
- }
- // تعيد العملية تاريخ اليوم بعد مضي عدد الأيام الذي تم تلقيه كبارمتر ابتداءً من
- // التاريخ الحالي
- // لا حاجة لفحص صحة المعطيات
- public Date dateAfter(int days) {
- int d = this.day + days;
- Date result = new Date(d, this.month);
- while (result.day > result.lastDayInMonth()) {
- result.day = result.day - result.lastDayInMonth();
- result.month = result.month + 1;
- if (result.month > 12)
- result.month = 1;
- }
- return result;
- }
- // تعيد العملية رقم اليوم الأخير من الشهر الذي يمثله التاريخ الحالي
- // (شهر شباط 28 يوما دائما)
- public int lastDayInMonth() {
- switch (this.month) {
- case 1:
- case 3:
- case 5:
- case 7:
- case 8:
- case 10:
- case 12:
- return 31;
- case 4:
- case 6:
- case 9:
- case 11:
- return 30;
- default:
- return 28;
- }
- }
- @Override
- public String toString() {
- return "Date [" + day + "/" + month + "]";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement