Thi xong, làm bài chán quá. Viết lại cho pà con xem xem.
/*Đề bài:
* Viết một lớp ngày tháng có các thuộc tính sau: ngày, tháng, năm
* 1. Viết các dữ liệu private cho lớp đó
* 2. Tạo hai hàm khởi tạo: ko có tham số và có 3 tham số
* 3. Viết các thuộc tính cho lớp đó.
* 4. Viết phương thức ToString() xuất ra chuỗi dạng: dd/mm/yy. vd: 01/12/89
* Viết lớp thời gian kế thừa từ phương thức ngày tháng, có các thuộc tính: giờ, phút , giây
* 1. Viết các dữ liệu private
* 2. Tạo hàm khởi tạo ko có tham số và có 6 tham số.
* 3. Viết các thuộc tính phù hợp cho lớp
* 4. Viết phương thức ToString() xuất ra dạng : dd/mm/yy hhss AM/PM.
* Viết một chương trình nhập vào thời gian thi lập trình hướng đối tượng, và cho biết thời gian kết thúc.
* */
Có gì bổ sung thêm anh em nhé. Lỡ thi lại!buồn quá!
/*Đề bài:
* Viết một lớp ngày tháng có các thuộc tính sau: ngày, tháng, năm
* 1. Viết các dữ liệu private cho lớp đó
* 2. Tạo hai hàm khởi tạo: ko có tham số và có 3 tham số
* 3. Viết các thuộc tính cho lớp đó.
* 4. Viết phương thức ToString() xuất ra chuỗi dạng: dd/mm/yy. vd: 01/12/89
* Viết lớp thời gian kế thừa từ phương thức ngày tháng, có các thuộc tính: giờ, phút , giây
* 1. Viết các dữ liệu private
* 2. Tạo hàm khởi tạo ko có tham số và có 6 tham số.
* 3. Viết các thuộc tính phù hợp cho lớp
* 4. Viết phương thức ToString() xuất ra dạng : dd/mm/yy hhss AM/PM.
* Viết một chương trình nhập vào thời gian thi lập trình hướng đối tượng, và cho biết thời gian kết thúc.
* */
Có gì bổ sung thêm anh em nhé. Lỡ thi lại!buồn quá!
- Code:
public class NgayThang
{
private int _nam, _thang, _ngay;
public NgayThang()
{
//Lấy mặc định là ngày sinh của tác giả :P
Nam = 1989;
Thang = 12;
Ngay = 1;
}
public NgayThang(int nam, int thang, int ngay)
{
Nam = nam;
Thang = thang;
Ngay = ngay;
}
public int Nam
{
get { return _nam; }
set
{
if (value >= 1900) _nam = value;
else throw new Exception("Nam khong hop le");
}
}
public int Thang
{
get { return _thang; }
set
{
if (value > 12 || value <= 0) throw new Exception("Thang khong hop le");
else _thang = value;
}
}
public int Ngay
{
get { return _ngay; }
set
{
int[] soNgay = new int[] { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
if (LaNamNhuan(Nam)) soNgay[2] = 29;
if (value > 0 && value <= soNgay[Thang]) _ngay = value;
else throw new Exception("Ngay khong hop le");
}
}
private bool LaNamNhuan(int nam)
{
if (nam % 4 == 0 && nam % 100 != 0) return true;
else return nam % 400 == 0;
}
public override string ToString()
{
string strNam = Nam.ToString().Substring(2, 2);
string strThang = Thang >= 10 ? Thang.ToString() : "0" + Thang.ToString();
string strNgay = Ngay >= 10 ? Ngay.ToString() : "0" + Ngay.ToString();
return strNgay + "/" + strThang + "/" + strNam;
}
}
public class ThoiGian : NgayThang
{
private int _gio, _phut, _giay;
public ThoiGian() : base()
{
Gio = 0;
Phut = 0;
Giay = 0;
}
public ThoiGian(int nam, int thang, int ngay, int gio, int phut, int giay)
: base(nam, thang, ngay)
{
Gio = gio;
Phut = phut;
Giay = giay;
}
public int Gio
{
get { return _gio; }
set
{
if (value >= 0 && value <= 24) _gio = value;
else throw new Exception("Gio khong hop le");
}
}
public int Phut
{
get { return _phut; }
set
{
if (value >= 0 & value < 60) _phut = value;
else throw new Exception("Phut khong hop le");
}
}
public int Giay
{
get { return _giay; }
set
{
if (value >= 0 & value < 60) _giay = value;
else throw new Exception("Giay khong hop le");
}
}
public override string ToString()
{
string amOrPm = "";
if (Gio >= 0 && Gio < 12 && Phut < 60 & Giay < 60) amOrPm = "AM";
else amOrPm = "PM";
string strGio = Gio > 10 ? Gio.ToString() : "0" + Gio.ToString();
string strPhut = Phut > 10 ? Phut.ToString() : "0" + Phut.ToString();
string strGiay = Giay > 10 ? Giay.ToString() : "0" + Giay.ToString();
return base.ToString() + " " + strGio + ":" + strPhut + ":" + strGiay + " " + amOrPm;
}
}
class Program
{
static void Main()
{
ThoiGian thiHK = new ThoiGian(2010, 6, 5, 7, 0, 0);
int soPhut = 60;
//Đoạn này chỉ áp dụng với đề thi, nghĩa là chỉ trong ngày thui.
//Nếu chơi kỉu cộng mà qua ngày khác thì viết dài lắm. Thi sao viết kịp
thiHK.Gio = thiHK.Gio + (thiHK.Phut + soPhut) / 60;
if (thiHK.Phut + soPhut >= 60) thiHK.Phut = (thiHK.Phut + soPhut) % 60;
else thiHK.Phut = thiHK.Phut + soPhut;
Console.Write(thiHK.ToString());
Console.ReadLine();
}
}