📄 utility.cs
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Data;
using System.Text.RegularExpressions;
namespace 课程安排
{
public class Utility
{
// 匹配日期
public static bool isDateString(string strIn)
{
return true;
//return Regex.IsMatch(strIn, @"^2\d{3}-(?:0?[1-9]|1[0-2])-(?:0?[1-9]|[1-2]\d|3[0-1])(?:0?[1-9]|1\d|2[0-3]):(?:0?[1-9]|[1-5]\d):(?:0?[1-9]|[1-5]\d)$");
}
// 匹配年份
public static bool isYearString(string strIn)
{
return true;
//return Regex.IsMatch(strIn, @"^2\d{3}-(?:0?[1-9]|1[0-2])-(?:0?[1-9]|[1-2]\d|3[0-1])(?:0?[1-9]|1\d|2[0-3]):(?:0?[1-9]|[1-5]\d):(?:0?[1-9]|[1-5]\d)$");
}
public static bool CheckComboText(object o)
{
bool b = false;
if (o is ComboBox)
{
ComboBox cmb = o as ComboBox;
if (cmb.Text != "")
{
for (int i = 0; i < cmb.Items.Count; i++)
{
if (cmb.Text == cmb.Items[i].ToString())
{
b = true;
break;
}
}
}
}
return b;
}
// 判断名称是否符合格式
public static bool IsNameString(string name)
{
bool b = true;
if (name == null || name == "")
b = false;
return b;
}
// 将枚举类型转换成字符串
public static string WeekToString(Week week)
{
string weekString = "";
if (week == Week.星期一)
weekString = "1";
else if (week == Week.星期二)
weekString = "2";
else if (week == Week.星期三)
weekString = "3";
else if (week == Week.星期四)
weekString = "4";
else if (week == Week.星期五)
weekString = "5";
else if (week == Week.星期六)
weekString = "6";
else if (week == Week.星期日)
weekString = "7";
return weekString;
}
// 将字符串转换成枚举类型
public static Week StringToWeek(string weekString)
{
Week week = Week.星期一;
if (weekString == "1")
week = Week.星期一;
else if (weekString == "2")
week = Week.星期二;
else if (weekString == "3")
week = Week.星期三;
else if (weekString == "4")
week = Week.星期四;
else if (weekString == "5")
week = Week.星期五;
else if (weekString == "6")
week = Week.星期六;
else if (weekString == "7")
week = Week.星期日;
return week;
}
// 将枚举类型转换成字符串
public static int WeekToInt(Week week)
{
int weekString = 0;
if (week == Week.星期一)
weekString = 1;
else if (week == Week.星期二)
weekString = 2;
else if (week == Week.星期三)
weekString = 3;
else if (week == Week.星期四)
weekString = 4;
else if (week == Week.星期五)
weekString = 5;
else if (week == Week.星期六)
weekString = 6;
else if (week == Week.星期日)
weekString = 7;
return weekString;
}
// 将字符串转换成枚举类型
public static Week IntToWeek(int weekString)
{
Week week = Week.星期一;
if (weekString == 1)
week = Week.星期一;
else if (weekString == 2)
week = Week.星期二;
else if (weekString == 3)
week = Week.星期三;
else if (weekString == 4)
week = Week.星期四;
else if (weekString == 5)
week = Week.星期五;
else if (weekString == 6)
week = Week.星期六;
else if (weekString == 7)
week = Week.星期日;
return week;
}
// 由入学时间和教学级别计算获得年级
public static string GetGradeName(DateTime dateTime, EditLevel level)
{
if (dateTime == null)
return "";
int year = Convert.ToInt32(DateTime.Today.Date.Year);
int month = Convert.ToInt32(DateTime.Today.Date.Month);
int day = Convert.ToInt32(DateTime.Today.Date.Day);
int sYear = Convert.ToInt32(dateTime.Year);
int sMonth = Convert.ToInt32(dateTime.Month);
int sDay = Convert.ToInt32(dateTime.Day);
int g;
if (month > sMonth)
{
g = year - sYear + 1;
}
else
{
g = year - sYear;
}
string gradeName = "";
if (level == EditLevel.小学)
{
gradeName = g.ToString();
}
else if (level == EditLevel.初中)
{
g = g + 6;
gradeName = g.ToString();
}
else if (level == EditLevel.高中)
{
g = g + 9;
gradeName = g.ToString();
}
return gradeName;
}
public static DateTime GetStartTime(string gradeName, EditLevel level)
{
DateTime dt = DateTime.Today;
try
{
int year = 0;
int month = 0;
int day = 0;
int g = Convert.ToInt32(gradeName);
if (g > 0 && g <= 12)
{
if (level == EditLevel.初中)
g = g - 3;
else if (level == EditLevel.高中)
g = g - 6;
dt = new DateTime();
if (DateTime.Today.Month < 9)
year = DateTime.Today.Year - g;
else
year = DateTime.Today.Year - g + 1;
month = 9;
day = 1;
dt = new DateTime(year, month, day);
}
}
catch (Exception ex)
{
}
return dt;
}
public static EditLevel GetEditLevel(string gradeName)
{
EditLevel el = EditLevel.NULL;
try
{
int g = Convert.ToInt32(gradeName);
if (g > 0 && g <= 12)
{
if (g <= 6)
el = EditLevel.小学;
else if (g <= 9)
el = EditLevel.初中;
else
el = EditLevel.高中;
}
}
catch (Exception ex)
{
}
return el;
}
public static CourseTime GetCourseTimeObject(string ct)
{
CourseTime courseTime = null;
try
{
string[] strs = ct.Split('-');
if (strs.Length == 2)
{
courseTime = new CourseTime();
courseTime.Week = StringToWeek(strs[0]);
courseTime.CourseNum = Convert.ToInt32(strs[1]);
}
}
catch (Exception ex)
{
}
return courseTime;
}
public static string GetCourseTimeString(CourseTime ct)
{
string str = "";
if (ct != null)
{
str = WeekToString(ct.Week);
str = str + "-" + ct.CourseNum.ToString();
}
return str;
}
public static string GetEditLevelString(EditLevel el)
{
string str = "";
if (el != null)
{
if (el == EditLevel.小学)
str = "小学";
else if (el == EditLevel.初中)
str = "初中";
else if (el == EditLevel.高中)
str = "高中";
}
return str;
}
public static EditLevel GetEditLevelObject(string el)
{
EditLevel editLevel = EditLevel.NULL;
if (el != null && el != "")
{
if (el == "小学")
editLevel = EditLevel.小学;
else if (el == "初中")
editLevel = EditLevel.初中;
else if (el == "高中")
editLevel = EditLevel.高中;
}
return editLevel;
}
public static string GetShowGradeNameFromObject(Grade grade)
{
int i = Convert.ToInt32(grade.GradeName);
string str = "";
if (i <= 6)
{
str = grade.GradeName + "年级";
}
else if (i > 6 && i <= 9)
{
int t = i - 6;
str = "初" + t.ToString();
}
else
{
int t = i - 9;
str = "高" + t.ToString();
}
return str;
}
public static Grade GetGradeObjectFromShowName(string showName)
{
string str = "";
if (showName.Contains("年级"))
{
str = showName.Replace("年级", "");
}
else if (showName.Contains("初"))
{
str = showName.Replace("初", "");
int i = Convert.ToInt32(str);
i = i + 6;
str = i.ToString();
}
else
{
str = showName.Replace("高", "");
int i = Convert.ToInt32(str);
i = i + 9;
str = i.ToString();
}
Grade grade = School.GetGrade(str);
return grade;
}
#region 数据表操作
public static string GetMaxId(DataTable dt, string field)
{
int maxId = 0;
for (int i = 0; i < dt.Rows.Count; i++)
{
if (maxId < Convert.ToInt32(dt.Rows[i][field]))
maxId = Convert.ToInt32(dt.Rows[i][field]);
}
maxId++;
return maxId.ToString();
}
public static DataRow GetRow(DataTable dt, string field, string id)
{
DataRow[] drs = dt.Select(field + " = " + id);
if (drs.Length <= 0)
return null;
else
return drs[0];
}
public static DataRow GetRowByName(DataTable dt, string field, string name)
{
DataRow[] drs = dt.Select(field + " = '" + name + "'");
if (drs.Length <= 0)
return null;
else
return drs[0];
}
#endregion
#region 判断名称是否重复
public static bool isRepeat(object collect, string name)
{
bool b = false;
if (collect != null)
{
if (collect is List<Subject>)
{
List<Subject> subjects = collect as List<Subject>;
for (int i = 0; i < subjects.Count; i++)
{
if (subjects[i].SubjectName == name)
{
b = true;
break;
}
}
}
else if (collect is List<Teacher>)
{
List<Teacher> teachers = collect as List<Teacher>;
for (int i = 0; i < teachers.Count; i++)
{
if (teachers[i].TeacherName == name)
{
b = true;
break;
}
}
}
else if (collect is List<Class>)
{
List<Class> classes = collect as List<Class>;
for (int i = 0; i < classes.Count; i++)
{
if (classes[i].ClassName == name)
{
b = true;
break;
}
}
}
}
return b;
}
// 在同一老师(或同一班级)不可能同一时间上两门课,即只用判断 教师和课程时间, 班级和课程时间都不重复(课程目前没有使用)
public static bool isRepeatCourse(List<Course> courses, Teacher teacher, Class cls, CourseTime courseTime, Subject subject)
{
bool b = false;
if (courses != null)
{
for (int i = 0; i < courses.Count; i++)
{
if (courses[i].Class.Equals(cls) && courses[i].CourseTime.Equals(courseTime))
{
b = true;
break;
}
if (courses[i].Teacher.Equals(teacher) && courses[i].CourseTime.Equals(courseTime))
{
b = true;
break;
}
}
}
return b;
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -