using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OOP_class__CNgay_operator_ngay_thang
{
// bây giờ mình sẽ tạo ra 1 class ngày nhe các bạn
class Cngay
{
private int ngay, thang, nam;
public Cngay()// khởi tạo mặc định nhé các bạn
{
ngay = 1;
thang = 1;
nam = 1;
}
public Cngay(int a, int b, int c)// khởi tạo có tham số nhé các bạn
{
ngay = a;
thang = b;
nam = c;
}
// hàm khởi tạo sao chép nhé các bạn
public Cngay(Cngay a)
{
ngay = a.ngay;
thang = a.thang;
nam = a.nam;
}
public void xuat()
{
Console.Write("{0}/{1}/{2}",ngay,thang,nam);
}
// không cần hàm hủy nhé các bạn
// toán tử gán bằng nhé các bạn
// ồ chợt nhận ra là bên này có toán tử gán bằng lun rùi nhé các bận cac bạn ko cần phài cài đặt nữa nhé
// so sánh ngày nhé các bạn
public static bool operator >(Cngay a, Cngay b)
{
if (a.nam > b.nam)
{
return true;
}
else
{
if (a.thang > b.thang)
{
return true;
}
else{
if (a.ngay > b.ngay)
{
return true;
}
}
}
return false;
}
public static bool operator <(Cngay a, Cngay b)
{
if (a.nam < b.nam)
{
return true;
}
else
{
if (a.thang < b.thang)
{
return true;
}
else
{
if (a.ngay < b.ngay)
{
return true;
}
}
}
return false;
}
public static bool operator <=(Cngay a, Cngay b)
{
if (a.nam <= b.nam)
{
return true;
}
else
{
if (a.thang <= b.thang)
{
return true;
}
else
{
if (a.ngay <= b.ngay)
{
return true;
}
}
}
return false;
}
public static bool operator >=(Cngay a, Cngay b)
{
if (a.nam >= b.nam)
{
return true;
}
else
{
if (a.thang >= b.thang)
{
return true;
}
else
{
if (a.ngay >= b.ngay)
{
return true;
}
}
}
return false;
}
public static bool operator ==(Cngay a,Cngay b)
{
return (a.nam+a.thang+a.ngay)==(b.nam+b.thang+b.ngay);
}
public static bool operator!=(Cngay a, Cngay b)
{
return (a.nam + a.thang + a.ngay) != (b.nam + b.thang + b.ngay);
}
//Bây giờ ta qua cộng ngày lại với nhau nhé
public static Cngay operator +(Cngay a, Cngay b)
{
int[] thangnam = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
if (a.nam % 4 == 0 && a.nam % 100 != 0 || a.nam % 400 == 0)
{
thangnam[1] = 29;
}
if (b.nam % 4 == 0 && b.nam % 100 != 0 || b.nam % 400 == 0)
{
thangnam[1] = 29;
}
Cngay c = new Cngay();
c.ngay = a.ngay + b.ngay;
if (c.ngay > thangnam[a.thang - 1])
{
c.ngay = c.ngay - thangnam[a.thang - 1];
a.thang += 1;
if (a.thang > 12)
{
a.nam += 1;
}
}
c.thang = a.thang + b.thang;
if (c.thang > 12)
{
c.thang -= 12;
if (c.thang == 12)
{
c.thang = 1;
}
a.nam += 1;
}
c.nam = a.nam + b.nam;
return c;
}
// qua Phần trừ ngày tháng nam nhé các bạn
public static Cngay operator -(Cngay a, Cngay b)
{
Cngay c = new Cngay();
c.ngay = a.ngay - b.ngay;
if (c.ngay < 1)
{
a.thang -=1;
if (a.thang ==0)
{
a.thang = 12;
}
}
c.thang = (a.thang - b.thang);
if (c.thang < 1)
{
c.thang = (12 + a.thang - b.thang);
a.nam -= 1;
}
c.nam = a.nam - b.nam;
return c;
}
// bây giờ ta qua cái ++ và -- nhé các bạn
public static Cngay operator ++(Cngay a)
{
Cngay b = new Cngay(1, 0, 0);
a = a + b;
return a;
}
public static Cngay operator --(Cngay a)
{
Cngay b = new Cngay(1, 0, 0);
a = a - b;
return a;
}
}
class Program
{
static void Main(string[] args)
{
// thử nhé các bạn
//So sánh
Cngay a=new Cngay(31,8,2013);
Cngay b=new Cngay(3,9,3);
// if(a>b)
// {
//Console.Write("
Ngay a>b");
// }
// else
// {
// Console.Write("
Ngay b>a");
// }
a= b--;
a.xuat();
Console.Write("
");
b.xuat();
Console.ReadKey();
}
}
}
Be the first to comment
You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.