/// <summary> /// Проверка, что дата или диапазон определены с точностью до одного месяца /// </summary> public static bool IsMonthDefined(Pullenti.Ner.Referent obj) { DateReferent sd = obj as DateReferent; if (sd != null) { return(sd.Year > 0 && sd.Month > 0); } DateRangeReferent sdr = obj as DateRangeReferent; if (sdr != null) { if (sdr.DateFrom == null || sdr.DateTo == null) { return(false); } if (sdr.DateFrom.Year == 0 || sdr.DateTo.Year != sdr.DateFrom.Year) { return(false); } if (sdr.DateFrom.Month == 0 || sdr.DateTo.Month != sdr.DateFrom.Month) { return(false); } return(true); } return(false); }
public override bool CanBeEquals(Pullenti.Ner.Referent obj, Pullenti.Ner.Core.ReferentsEqualType typ) { DateReferent sd = obj as DateReferent; if (sd == null) { return(false); } if (sd.IsRelative != IsRelative) { return(false); } if (sd.Century != Century) { return(false); } if (sd.Year != Year) { return(false); } if (sd.Month != Month) { return(false); } if (sd.Day != Day) { return(false); } if (sd.Hour != Hour) { return(false); } if (sd.Minute != Minute) { return(false); } if (sd.Second != Second) { return(false); } if (sd.Pointer != Pointer) { return(false); } if (sd.DayOfWeek > 0 && DayOfWeek > 0) { if (sd.DayOfWeek != DayOfWeek) { return(false); } } return(true); }
public static int Compare(DateReferent d1, DateReferent d2) { if (d1.Year < d2.Year) { return(-1); } if (d1.Year > d2.Year) { return(1); } if (d1.Month < d2.Month) { return(-1); } if (d1.Month > d2.Month) { return(1); } if (d1.Day < d2.Day) { return(-1); } if (d1.Day > d2.Day) { return(1); } if (d1.Hour < d2.Hour) { return(-1); } if (d1.Hour > d2.Hour) { return(1); } if (d1.Minute < d2.Minute) { return(-1); } if (d1.Minute > d2.Minute) { return(1); } if (d1.Second > d2.Second) { return(-1); } if (d1.Second < d2.Second) { return(1); } return(0); }
internal static bool CanBeHigher(DateReferent hi, DateReferent lo) { if (lo == null || hi == null) { return(false); } if (lo.Higher == hi) { return(true); } if (lo.Higher != null && lo.Higher.CanBeEquals(hi, Pullenti.Ner.Core.ReferentsEqualType.WithinOneText)) { return(true); } if (lo.Higher != null) { return(false); } if (lo.Hour >= 0) { if (hi.Hour >= 0) { return(false); } if (lo.Day > 0) { return(false); } return(true); } if (hi.Year > 0 && lo.Year <= 0) { if (hi.Month > 0) { return(false); } return(true); } return(false); }