/// <summary> /// 将AlarmInfo结构转换为字符串数组 /// </summary> /// <param name="info"></param> /// <returns></returns> public static string[] GetStringArrayFromAlarmInfo(ALARMINFO info) { GetRepeatInfo(GetRepeatIntervalString(info.RepeatInterval)); string[] arr = new string[] { info.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"), //CreateTime info.AlarmDate.ToString("yyyy-MM-dd HH:mm:ss"), //AlarmDate "false", //IsExpired GetRepeatIntervalString(info.RepeatInterval), //Recurrence info.AlarmName, //Title info.AlarmContents, //Contents info.AlarmSound, //Sound "0", //DelayTime "true" //Enable }; return(arr); }
/// <summary> /// 从数据表中解析Alarm信息 /// </summary> /// <param name="table">一个数据表,ref引用</param> /// <returns>返回一个List的AlarmInfo</returns> public List <ALARMINFO> GetAlarmInfoFromTable(ref DataTable table) { List <ALARMINFO> Alarms = new List <ALARMINFO>(); ALARMINFO info = new ALARMINFO(); for (int i = 0; i < table.Rows.Count; i++) { info.AlarmID = int.Parse(table.Rows[i]["AlarmID"].ToString()); //ID info.CreateDate = DateTime.Parse(table.Rows[i]["CreateTime"].ToString()); //创建日期 info.AlarmDate = DateTime.Parse(table.Rows[i]["AlarmDate"].ToString()); //提醒日期 info.RepeatInterval = GetRepeatInfo(table.Rows[i]["Recurrence"].ToString()); //重复周期 info.AlarmName = table.Rows[i]["Title"].ToString(); //标题 info.AlarmContents = table.Rows[i]["Contents"].ToString(); //备注 info.AlarmSound = table.Rows[i]["Sound"].ToString(); //声音路径 info.AlarmStatus = int.Parse(table.Rows[i]["Enable"].ToString()) == 1 ? true : false; //是否启用 Alarms.Add(info); } return(Alarms); }
public static ALARMINFO ParseAlarmInfo(string str) { ALARMINFO info = new ALARMINFO(); info.CreateDate = DateTime.Now; info.AlarmName = "Alarm"; info.AlarmContents = ""; info.AlarmStatus = true; info.RepeatInterval.Once = true; info.RepeatInterval.Daily = false; info.RepeatInterval.Monthly = false; info.RepeatInterval.Weekly = false; /// TODO: 如何解析。 /// 这里只提供快速添加功能,所以不需要判断add之类的词 /// 例如: add 10 min, add 10 hour, add 10 day /// at 1/20 20:35, 每年的1月20日重复 /// at 20:35,每天的20:35分重复 var t = str.Split(' '); int value = 0; if (int.TryParse(t[0], out value)) { //时间无效 if (!(value > 0)) { info.AlarmStatus = false; return(info); } DateTime now; if (t[1].ToLower() == "min" || t[1].ToLower() == "m") { now = DateTime.Now.AddMinutes(value); //分钟 info.AlarmDate = new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second); } if (t[1].ToLower() == "hour" || t[1].ToLower() == "h") { //小时 now = DateTime.Now.AddHours(value); info.AlarmDate = new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second); } if (t[1].ToLower() == "day" || t[1].ToLower() == "d") { //天 now = DateTime.Now.AddDays(value); info.AlarmDate = new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second); } if (t.Length > 2) { //有标题 info.AlarmName = t[2]; if (t.Length > 3) { //有备注 info.AlarmContents = t[3]; } } } else { info.AlarmStatus = false; } return(info); }