c# 获取某日期所在周的第一天和最后一天

时间:2023-01-09 22:56:10
转自:http://blog.csdn.net/joyhen/article/details/9179763[csharp] view plain copy
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Text;  
  5.   
  6. namespace WyfClass  
  7. {  
  8. public class tools  
  9. {  
  10. /// <summary>  
  11. /// 得到本周第一天(以星期天为第一天)  
  12. /// </summary>  
  13. /// <param name="datetime"></param>  
  14. /// <returns></returns>  
  15. public DateTime GetWeekFirstDaySun(DateTime datetime)  
  16. {  
  17.     //星期天为第一天  
  18.     int weeknow = Convert.ToInt32(datetime.DayOfWeek);  
  19.     int daydiff = (-1) * weeknow;  
  20.   
  21.     //本周第一天  
  22.     string FirstDay = datetime.AddDays(daydiff).ToString("yyyy-MM-dd");  
  23.     return Convert.ToDateTime(FirstDay);  
  24. }  
  25.   
  26. /// <summary>  
  27. /// 得到本周第一天(以星期一为第一天)  
  28. /// </summary>  
  29. /// <param name="datetime"></param>  
  30. /// <returns></returns>  
  31. public DateTime GetWeekFirstDayMon(DateTime datetime)  
  32. {  
  33.     //星期一为第一天  
  34.     int weeknow = Convert.ToInt32(datetime.DayOfWeek);  
  35.   
  36.     //因为是以星期一为第一天,所以要判断weeknow等于0时,要向前推6天。  
  37.     weeknow = (weeknow == 0 ? (7 - 1) : (weeknow - 1));  
  38.     int daydiff = (-1) * weeknow;  
  39.   
  40.     //本周第一天  
  41.     string FirstDay = datetime.AddDays(daydiff).ToString("yyyy-MM-dd");  
  42.     return Convert.ToDateTime(FirstDay);  
  43. }  
  44.   
  45. /// <summary>  
  46. /// 得到本周最后一天(以星期六为最后一天)  
  47. /// </summary>  
  48. /// <param name="datetime"></param>  
  49. /// <returns></returns>  
  50. public DateTime GetWeekLastDaySat(DateTime datetime)  
  51. {  
  52.     //星期六为最后一天  
  53.     int weeknow = Convert.ToInt32(datetime.DayOfWeek);  
  54.     int daydiff = (7 - weeknow) - 1;  
  55.   
  56.     //本周最后一天  
  57.     string LastDay = datetime.AddDays(daydiff).ToString("yyyy-MM-dd");  
  58.     return Convert.ToDateTime(LastDay);  
  59. }  
  60.   
  61. /// <summary>  
  62. /// 得到本周最后一天(以星期天为最后一天)  
  63. /// </summary>  
  64. /// <param name="datetime"></param>  
  65. /// <returns></returns>  
  66. public DateTime GetWeekLastDaySun(DateTime datetime)  
  67. {  
  68.     //星期天为最后一天  
  69.     int weeknow = Convert.ToInt32(datetime.DayOfWeek);  
  70.     weeknow = (weeknow == 0 ? 7 : weeknow);  
  71.     int daydiff = (7 - weeknow);  
  72.   
  73.     //本周最后一天  
  74.     string LastDay = datetime.AddDays(daydiff).ToString("yyyy-MM-dd");  
  75.     return Convert.ToDateTime(LastDay);  
  76. }  
  77. }  
  78. }