java取当前月的最终日,在C#中获取当月的第一个星期和最后一个日期

需要帮助如何获得当月的第一个日期和一周的最后日期 .

低于我到目前为止所做的,但在某些情况下仍然会下降,特别是在开始日期和结束日期是星期日的情况下:

var givenDate = new DateTime(2018,4,1);

var intervalToStart = givenDate.DayOfWeek - DayOfWeek.Monday;

var startDate = givenDate.AddDays(-intervalToStart);

DateTime endDate;

int intervalToEnd = 0;

if (startDate.Month != givenDate.Month)

startDate = new DateTime(givenDate.Year, givenDate.Month, 1);

var dayOfWeekStartDate = startDate.DayOfWeek.ToString().ToLower();

switch (dayOfWeekStartDate)

{

case "sunday": intervalToEnd = 0;

break;

case "monday": intervalToEnd = 6;

break;

case "tuesday": intervalToEnd = 5;

break;

case "wednesday": intervalToEnd = 4;

break;

case "thursday": intervalToEnd = 3;

break;

case "friday": intervalToEnd = 2;

break;

case "saturday": intervalToEnd = 1;

break;

}

endDate = startDate.AddDays(intervalToEnd);

Console.WriteLine(startDate);

Console.WriteLine(endDate);

Case 1:

截止日期:2018年5月5日(周六)

第一个星期几:2018年5月1日(星期二)

上周日期:208年5月6日(星期日)

Case 2:

截止日期:2018年5月9日(周三)

第一周日期:2018年5月7日(星期一)

上周日期:2018年5月13日(星期日)

Case 3:

截止日期:2018年4月1日(星期日)

第一个星期几:2018年4月1日(星期日)

上周日期:2018年4月1日(星期日)

case 4:

截止日期:2018年6月2日(周六)

第一个星期几:2018年6月1日(星期五)

上周日期:2018年6月3日(星期日)

概念或答案非常感谢 .

先感谢您 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值