public override RecordInfo Read(string infoString) { RecordInfo info = new RecordInfo(); var match = Regex.Match(infoString, ReadPattern); info.Start = DateTime.Parse(match.Groups[1].Value + " " + match.Groups[2].Value); info.Stop = DateTime.Parse(match.Groups[1].Value + " " + match.Groups[3].Value); return info; }
public override string Write(RecordInfo info) { string timeFormat = "yyyy/MM/dd HH:mm:ss"; return string.Format(WritePattern, info.Start.HasValue ? info.Start.Value.ToString(timeFormat) : null, info.Stop.HasValue ? info.Stop.Value.ToString(timeFormat) : null, info.SpanStr, info.TotalMonthLateStr ); }
private void AddItem() { var newItem = new RecordInfo(); newItem.PreRecordInfo = LastRecordInfo; Items.Insert(0, newItem); }
public abstract string Write(RecordInfo info);
public override string Write(RecordInfo info) { string timeFormat = "yyyy/MM/dd HH:mm:ss"; return string.Format(WritePattern, info.Start.HasValue ? info.Start.Value.ToString(timeFormat) : "".PadLeft(timeFormat.Length + 3, repeatChar), info.Stop.HasValue ? info.Stop.Value.ToString(timeFormat) : "".PadLeft(timeFormat.Length + 3, repeatChar), info.SpanStr, info.TotalMonthLateStr ); }
public override RecordInfo Read(string infoString) { RecordInfo info = new RecordInfo(); var match = Regex.Match(infoString, ReadPattern); if (!string.IsNullOrEmpty(match.Groups[1].Value) && !string.IsNullOrEmpty(match.Groups[1].Value.Replace(repeatChar.ToString(), ""))) info.Start = DateTime.Parse(match.Groups[1].Value); if (!string.IsNullOrEmpty(match.Groups[2].Value) && !string.IsNullOrEmpty(match.Groups[2].Value.Replace(repeatChar.ToString(), ""))) info.Stop = DateTime.Parse(match.Groups[2].Value); return info; }
public TimeSpan? GetTotalMonthLate(RecordInfo info) { if (info.PreRecordInfo == null || info.PreRecordInfo.Month != info.Month) return info.TotalLate; TimeSpan lastMonthSpan = GetTotalMonthLate(info.PreRecordInfo) ?? TimeSpan.Zero; return lastMonthSpan + (info.TotalLate ?? TimeSpan.Zero); }