111,125
社区成员
发帖
与我相关
我的任务
分享IHolidayItem[] allDays = new IHolidayItem[]{
new GcDay("国际儿童节",6,1),
new GcDay("国庆节",10,1),
new CtcDay("端午节",5,5),
new MothersDay()
/* ..... */
};
public interface IHolidayItem {
bool IsToday { get; }
int DaysLeft { get; }
string Name { get;}
}
/* 公历节日 */
public class GcDay : IHolidayItem {
int _m, _d;
string _name;
internal GcDay(string name, int m, int d) {
_name = name;
_m = m;
_d = d;
}
public string Name { get { return _name; } }
public bool IsToday {
get { return DateTime.Now.Day == _d && DateTime.Now.Month == _m; }
}
public int DaysLeft {
get {
/* 计算下剩余天数并返回...*/
return -1;
}
}
}
/* 农历节日 */
public class CtcDay : IHolidayItem {
int _m, _d;
string _name;
internal CtcDay(string name, int m, int d) {
_name = name;
_m = m;
_d = d;
CtcDateToGcDate(ref _m, ref _d);
}
public string Name { get { return _name; } }
public bool IsToday {
get { return DateTime.Now.Day == _d && DateTime.Now.Month == _m; }
}
public int DaysLeft {
get {
/* 计算下剩余天数并返回...*/
return -1;
}
}
public static void CtcDateToGcDate(ref int m, ref int d){
/* 农历转换成公历.... */
}
}
/* 其他节日,例如母亲节 */
public class MothersDay : IHolidayItem {
public bool IsToday {
get { /* 计算下今天是否5月第二个星期天 */ return false; }
}
public int DaysLeft { get { return -1; } }
public string Name { get { return "母亲节"; } }
}