我需要知道如何获得每个月的最后一个星期一,因为在我必须做的程序中,每个月的最后一个星期一我必须产生兴趣,但我不知道如何计算它。
尝试获取该月的总天数并减去 7 天,但显然结果并不总是星期一。
DateTime fechaHoy = (DateTime)fechahoy.Value.Date;
DateTime fechabono = FechaAbono.Value.Date;
int anyo = fechabono.Year;
int mes = fechabono.Month;
int dias = DateTime.DaysInMonth(anyo, mes);
int anyoHoy = fechaHoy.Year;
int mesHoy = fechaHoy.Month;
int diasHoy = DateTime.DaysInMonth(anyoHoy, mesHoy);
int totaldiashoy = DateTime.DaysInMonth(anyoHoy, mesHoy);// 31 dias
int totaldias = totaldiashoy - 7;
您收到的答案使用循环。我将添加一个不是的,搜索一周中的任何一天也是通用的。简单计算一个月的最后一天,无论是一周中的哪一天,都会计算出我们感兴趣的一周中的前一天。
这是因为DayOfWeek枚举为一周中的每一天分配一个整数,周日为 0,依此类推,直到周六为 6。
调用方式如下:
如果您想知道一个月的星期一的天数,请使用以下函数:
干杯
任何一个月的最后一个星期一是:
当
fecha
它是该月的最后一天(并假设星期一有效1
,星期日有效0
)。现在你的问题是得到一个月的最后一天,就像去下个月的第一天并减去一天一样简单:因此,2019 年 1 月的最后一个星期一是:
上面的代码显示:
一种方法是首先获取您想要获取的月份的最后一周,然后获取该周的星期一,如下所示:
你可以做的是回顾过去(出于效率原因),你发现的第一个星期一是你本月的最后一个星期一: