using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace NgayThang { class Date { int ngay; int thang; int nam; public Date() { = 0; thang = 0; nam = 0; } public Date(int ng, int th, int nnam) { = ng; thang = th; nam = nnam; } public bool KTNamNhuan(int year) { if (((year % == 0) && (year % 100 != 0)) || (year % 400 == 0)) return true; return false; } public bool KTHopLe(int day, int month, int year) { int[] soNgayCuaThang = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; if (KTNamNhuan(year) == true) soNgayCuaThang[2] = 29; if (day < || day > soNgayCuaThang[month]) return false; if (month < || month > 12) return false; if (year < 1) return false; return true; } public void Nhap1Date() { int ngtam, thgtam, namtam; { Console.Write("Nhap ngay:"); ngtam = int.Parse(Console.ReadLine()); Console.Write("Nhap thang:"); thgtam = int.Parse(Console.ReadLine()); Console.Write("Nhap nam:"); namtam = int.Parse(Console.ReadLine()); if (KTHopLe(ngtam, thgtam, namtam) == false) Console.WriteLine("Ban nhap thang nam khong hop le.\nHay nhap lai!"); } while (KTHopLe(ngtam, thgtam, namtam) == false); this.ngay = ngtam; this.thang = thgtam; this.nam = namtam; } public override string ToString() { return "[" + + "/" + thang + "/" + nam + "]"; } public double TongSoNgay() { int[] soNgayCuaThang = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; if(KTNamNhuan(nam)==true) soNgayCuaThang[2]=29; long S=0; for (int i = 1; i < nam; i++) if (KTNamNhuan(i) == true) S = S + 366; else S = S + 365; for (int i = 0; i < thang; i++) S = S + soNgayCuaThang[i]; S = S + ngay; return S; } public string ThuMay() { int tam = (int)(TongSoNgay() % 7); switch (tam) { case 0: return "Chu Nhat"; case 1: return "Thu Hai"; case 2: return "Thu Ba"; case 3: return "Thu Tu"; case 4: return "Thu Nam"; case 5: return "Thu Sau"; case 6: return "Thu Bay"; } return ""; } public Date NgayTruocDo() { int day = ngay, month = thang, year = nam; int[] soNgayCuaThang = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; if(KTNamNhuan(year)==true) soNgayCuaThang[2]=29; day = day - 1; if (day == 0) { month = month - 1; if (month == 0) { month = 12; year = year - 1; } day = soNgayCuaThang[month]; } Date t = new Date(day, month, year); return t; } public Date NgayTiepTheo() { int day = ngay, month = thang, year = nam; int[] soNgayCuaThang = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; if (KTNamNhuan(year) == true) soNgayCuaThang[2] = 29; day = day + 1; if (day > soNgayCuaThang[month]) { day = 1; month = month + 1; if (month > 12) { month = 1; year = year + 1; } } Date t = new Date(day, month, year); return t; } } class Program { static void Main(string[] args) { Date ngay1 = new Date(); Console.WriteLine("Nhap mot thang nam:"); ngay1.Nhap1Date(); Console.WriteLine("Ngay vua nhap la: {0} {1}", ngay1.ThuMay(), ngay1); Console.WriteLine("Ngay ke tiep la : {0} {1}", ngay1.NgayTiepTheo().ThuMay(), ngay1.NgayTiepTheo()); Console.WriteLine("Ngay truoc la: {0} {1}", ngay1.NgayTruocDo().ThuMay(), ngay1.NgayTruocDo()); } } } ... day = day - 1; if (day == 0) { month = month - 1; if (month == 0) { month = 12; year = year - 1; } day = soNgayCuaThang[month]; } Date t = new Date( day, month, year); return t; } public Date NgayTiepTheo()... 1; } } Date t = new Date( day, month, year); return t; } } class Program { static void Main(string[] args) { Date ngay1 = new Date( ); Console.WriteLine("Nhap mot thang nam:"); ngay1.Nhap 1Date( );... 4: return "Thu Nam"; case 5: return "Thu Sau"; case 6: return "Thu Bay"; } return ""; } public Date NgayTruocDo() { int day = ngay, month = thang, year = nam; int[] soNgayCuaThang = { 0, 31,