Liên Thông CNTT K4

Cộng Đồng Liên Thông Công Nghệ Thông Tin Bình Thuận

Trang ChínhTrang Chính  CalendarCalendar  Trợ giúpTrợ giúp  Tìm kiếmTìm kiếm  Thành viênThành viên  NhómNhóm  Đăng kýĐăng ký  Đăng NhậpĐăng Nhập  

Share | 
 
 Giải BTVN - Bài tập 02
Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp


avatar
Giới tính : Nam
Posts Posts : 33
Thanked Thanked : 82

Lớp CDate
Code:
    public class CDate
    {
        private int year, month, day;
        //Property get, set
        public int Year
        {
            get { return year; }
            set
            {
                if (value >= 1) year = value;
                else year = 1;
            }
        }
        public int Month
        {
            get { return month; }
            set
            {
                if (value >= 1 && value <= 12) month = value;
                else month = 1;
            }
        }
        public int Day
        {
            get { return day; }
            set
            {
                if(month == 2)
                {
                    if (year % 4 == 0 && year % 100 != 0 && year % 400 == 0)
                    {
                        if (value >= 1 && value <= 29) day = value;
                        else day = 1;
                    }
                    else
                    {
                        if (value >= 1 && value <= 28) day = value;
                        else day = 1;
                    }
                }
                else if(month == 4 || month == 6 || month == 9 || month == 11)
                {
                    if (value >= 1 && value <=30) day = value;
                    else day = 1;
                }
                else
                {
                    if (value >= 1 && value <=31) day = value;
                    else day = 1;
                }
            }
        }
        public void Export()
        {
            Console.WriteLine("ngay {0} thang {1} nam {2}", day, month, year);
        }
        //Phương thức thiết lập (constructors)
        public CDate()
        {
            year = 0;
            month = 0;
            day = 0;
        }
        public CDate(int iyear, int imonth, int iday)
        {
            Year = iyear;
            Month = imonth;
            Day = iday;
        }
        public CDate(CDate cd)
        {
            cd.year = year;
            cd.month = month;
            cd.day = day;
        }
        //Các phương thức xử lý tính toán
        public CDate AddYear(int numyear)
        {
            CDate kq = new CDate();
            kq.year = year + numyear;
            kq.month = month;
            kq.day = day;
            return kq;
        }
        public CDate AddMonth(int nummonth)
        {
            CDate kq = new CDate();
            month = month + nummonth;
            if (month > 12)
            {
                year = year + month/12;
                month = month % 12;
            }
            kq.year = year;
            kq.month = month;
            kq.day = day;
            return kq;
        }
        public CDate AddDay(int numday)
        {
            CDate kq = new CDate();
            day = day + numday;
            if (month == 2)
            {
                if (year % 4 == 0 && year % 100 != 0 && year % 400 == 0)
                {
                    if (day > 29)
                    {
                        month = month + 1;
                        day = day - 29;
                    }
                }
                else
                {
                    if (day > 28)
                    {
                        month = month + 1;
                        day = day - 28;
                    }
                }
            }
            else if (month == 4 || month == 6 || month == 9 || month == 11)
            {
                if (day > 30)
                {
                    month = month + 1;
                    day = day - 30;
                }
            }
            else
            {
                if (day > 31)
                {
                    month = month + 1;
                    day = day - 31;
                }
            }
            if (month > 12)
            {
                year = year + month / 12;
                month = month % 12;
            }
            kq.year = year;
            kq.month = month;
            kq.day = day;
            return kq;
        }
        
        //Các phép toán
        
    }

Lớp main
Code:
    class Program
    {
        static void Main(string[] args)
        {
            CDate cd1 = new CDate();
            Console.WriteLine("<== Nhap CDate 01 ==>");
            Console.Write("Nhap nam: ");
            cd1.Year = int.Parse(Console.ReadLine());
            Console.Write("Nhap thang: ");
            cd1.Month = int.Parse(Console.ReadLine());
            Console.Write("Nhap ngay: ");
            cd1.Day = int.Parse(Console.ReadLine());
            Console.WriteLine("<== Xuat CDate 01 ==>");
            cd1.Export();

            CDate kq = new CDate();
            Console.Write("Nhap so nam can them: ");
            int numYear = int.Parse(Console.ReadLine());
            kq = cd1.AddDay(numYear);
            kq.Export();
            Console.ReadLine();
        }
    }

Mọi người copy nhớ chỉnh sửa nhé, bài giải demo theo ý tưởng cá nhân nên không đảm bảo độ chính xác đâu nha....

※ Bài viết cùng chuyên mục


Xem lý lịch thành viên
Tác giảThông điệp
Administrator

Tuối : 26
Giới tính : Nam
Posts Posts : 40
Thanked Thanked : 23

Chú ý: Mọi người tìm đoạn 
Code:
        public CDate(CDate cd)[size=12][/size]
        {[size=12][/size]
            cd.year = year;[size=12][/size]
            cd.month = month;[size=12][/size]
            cd.day = day;[size=12][/size]
        }

Thay bằng đoạn này 
Code:
        public CDate(CDate cd)
        {
            year = cd.year;
            month = cd.month;
            day = cd.day;
        }

※ Bài viết cùng chuyên mục


Xem lý lịch thành viên http://lienthongcntt.forum-viet.com
 
Giải BTVN - Bài tập 02
Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
Diễn đàn Liên thông CNTT Bình Thuận :: Góc Học Tập :: Các môn học liên thông :: Lập trình Hướng đối tượng-
[Liên thông CNTT K4] Deverloped by Phạm Anh Dân - Rip by Nguyễn Gia Phú
Powered by © Forumotion.com - phpBB™ version ©phpBB2
Go to top Go to bottom