600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > linux判断季末日期 C#根据当前时间确定日期范围(本周 本月 本季度 本年度)...

linux判断季末日期 C#根据当前时间确定日期范围(本周 本月 本季度 本年度)...

时间:2023-02-21 15:29:39

相关推荐

linux判断季末日期 C#根据当前时间确定日期范围(本周 本月 本季度 本年度)...

在C#的开发当中经常遇到关于一个日期时间"+/-"一段时间的问题,下面是一些相关总结,供大家参考.

DateTime dt = DateTime.Now; //当前时间

DateTime startWeek = dt.AddDays(1 - Convert.ToInt32(dt.DayOfWeek.ToString("d"))); //本周周一

DateTime endWeek = startWeek.AddDays(6); //本周周日

DateTime startMonth = dt.AddDays(1 - dt.Day); //本月月初

DateTime endMonth = startMonth.AddMonths(1).AddDays(-1); //本月月末

//DateTime endMonth = startMonth.AddDays((dt.AddMonths(1) - dt).Days - 1); //本月月末

DateTime startQuarter = dt.AddMonths(0 - (dt.Month - 1) % 3).AddDays(1 - dt.Day); //本季度初

DateTime endQuarter = startQuarter.AddMonths(3).AddDays(-1); //本季度末

DateTime startYear = new DateTime(dt.Year, 1, 1); //本年年初

DateTime endYear = new DateTime(dt.Year, 12, 31); //本年年末

=============================

/// /// 计算本周起始日期(礼拜一的日期)

///

/// 该周中任意一天

/// 返回礼拜一日期,后面的具体时、分、秒和传入值相等

public static DateTime CalculateFirstDateOfWeek(DateTime someDate)

{

int i = someDate.DayOfWeek - DayOfWeek.Monday;

if (i == -1) i = 6;// i值 > = 0 ,因为枚举原因,Sunday排在最前,此时Sunday-Monday=-1,必须+7=6。

TimeSpan ts = new TimeSpan(i, 0, 0, 0);

return someDate.Subtract(ts);

}

/// /// 计算本周结束日期(礼拜日的日期)

///

/// 该周中任意一天

/// 返回礼拜日日期,后面的具体时、分、秒和传入值相等

public static DateTime CalculateLastDateOfWeek(DateTime someDate)

{

int i = someDate.DayOfWeek - DayOfWeek.Sunday;

if(i != 0) i = 7 - i;// 因为枚举原因,Sunday排在最前,相减间隔要被7减。

TimeSpan ts = new TimeSpan(i, 0, 0, 0);

return someDate.Add(ts);

}

/// /// 判断选择的日期是否是本周(根据系统当前时间决定的‘本周’比较而言)

///

///

///

public static bool IsThisWeek(DateTime someDate)

{

//得到someDate对应的周一

DateTime someMon = CalculateFirstDateOfWeek(someDate);

//得到本周一

DateTime nowMon = CalculateFirstDateOfWeek(DateTime.Now);

TimeSpan ts = someMon - nowMon;

if (ts.Days < 0)

ts = -ts;//取正

if (ts.Days >= 7)

{

return false;

}

else

{

return true;

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。