using System;
using System.Text.RegularExpressions;
namespace tjsj._class
{
/// <summary>
/// datetime 的摘要说明。
/// </summary>
public class datetime
{
public int year,mon,day;
public datetime()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public datetime(string p_datestr)
{
int i;
string md;
if (checkDate(p_datestr))
{
i=p_datestr.IndexOf("-");
year= int.Parse(p_datestr.Substring(0,i));
md=p_datestr.Substring(i+1);
i=md.IndexOf("-");
mon= int.Parse(md.Substring(0,i));
day=int.Parse(md.Substring(i+1));
}
}
public bool checkDate(string p_datestr)
{
string iii=@"^((((1[6-9]|[2-9]/d)/d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]/d|3[01]))|(((1[6-9]|[2-9]/d)/d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]/d|30))|(((1[6-9]|[2-9]/d)/d{2})-0?2-(0?[1-9]|1/d|2[0-8]))|(((1[6-9]|[2-9]/d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$";
Regex rCode;
rCode = new Regex(iii);
if (!rCode.IsMatch(p_datestr.Trim()))
{
//Response.Write("<script>alert('开始时间格式不正确,格式为yyyy-mm-dd!');</script>");
return false;
}
else
{
return true;
}
}
public void testWeekDateScop( int y ,int m ,int d)
{
DateTime TestDate = new DateTime(y, m, d);
//DateTime TestDate = DateTime.Today;
//选择合适的日历
System.Globalization.Calendar calendar = new System.Globalization.GregorianCalendar();
//把指定日期转换成所在星期(第几个星期)
int Week = calendar.GetWeekOfYear(TestDate, System.Globalization.CalendarWeekRule.FirstDay, DayOfWeek.Monday);
//因为要求星期一作为一星期的第一天,星期天作为星期的最后一天,所以要处理一下.
int Days = (int)TestDate.DayOfWeek ;
// if(Days == 0)
// Days = 6;
// else
// Days -=2;
//得到指定星期的起始终止日期
DateTime FromDate = TestDate.AddDays(-Days);
DateTime ToDate = FromDate.AddDays(6) ;
if (FromDate.Year<TestDate.Year)
FromDate=new DateTime(TestDate.Year,1,1);
if(ToDate.Year>TestDate.Year)
ToDate=(new DateTime(TestDate.Year+1,1,1)).AddDays(-1);
//Response.Write(FromDate +"-----"+ToDate +" 星期: "+Days );
//TestContext.WriteLine("{0}年 第{1}周 星期:{4} 起始日期:{2} 终止日期:{3}", theYear, theWeek, fromDate, toDate, calendar.GetDayOfWeek(testDate).ToString());
}
}
}