亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從日期范圍中刪除周末

從日期范圍中刪除周末

C#
海綿寶寶撒 2021-10-31 19:42:22
我有一系列的日子需要確定周末是否在這個范圍內。如果是這樣,我將在最終范圍內添加 2 天(周一至周日,將其更改為周一至周三。(基于用戶選擇的天數,例如 5)我已經找到了一種解析日子的方法(不確定這是否是最佳實踐)并且不確定如何繼續。迄今為止:////TODO Refactor to new classDateTime startingDate = DateTime.Parse("07/25/2018");//TODO Insert variable from poted form DateTime endingDate = DateTime.Parse("07/08/2018");//TODO Insert variable from posted form var days=  Enumerable.Range(0, 1 + endingDate.Subtract(startingDate).Days)                .Select(offset => startingDate.AddDays(offset))                .ToList();在我看來,我需要像下面的偽代碼那樣做:if day.contains dayOfWeek.Saturday ||Or dayofWeek.Friday {Add.Days(2)}但我不知道如何。
查看完整描述

3 回答

?
一只甜甜圈

TA貢獻1836條經驗 獲得超5個贊

第一個你計算所有的周末天數。然后,將結果添加到開始日期中。這是我的解決方案。希望能幫到你,朋友!


static IEnumerable<DateTime> GetDaysBetween(DateTime start, DateTime end)

        {

            for (DateTime i = start; i < end; i = i.AddDays(1))

            {

                yield return i;

            }

        }


DateTime startingDate = DateTime.Parse("07/25/2018");//TODO Insert variable from poted form 


var numOfWeekends = GetDaysBetween(startingDate, startingDate.AddDays(7))

            .Where(d => d.DayOfWeek == DayOfWeek.Saturday || d.DayOfWeek == DayOfWeek.Sunday).Count();


startingDate = startingDate.AddDays(numOfWeekends);

            Console.WriteLine(startingDate);


查看完整回答
反對 回復 2021-10-31
?
慕少森

TA貢獻2019條經驗 獲得超9個贊

我并沒有真正理解附加部分,但是此代碼將為您提供一個沒有任何星期日或星期六的列表:


DateTime startingDate = DateTime.Parse("07/25/2018");//TODO Insert variable from poted form 

DateTime endingDate = DateTime.Parse("07/08/2018");//TODO Insert variable from posted form


List<DateTime> dates = new List<DateTime>();


for (DateTime dt = startingDate; dt <= endingDate; dt = dt.AddDays(1))

    if (dt.DayOfWeek != DayOfWeek.Saturday && dt.DayOfWeek != DayOfWeek.Sunday)

        dates.Add(dt);

如果需要,您還可以添加計數器:


DateTime startingDate = DateTime.Parse("07/25/2018");//TODO Insert variable from poted form 

DateTime endingDate = DateTime.Parse("07/08/2018");//TODO Insert variable from posted form


List<DateTime> dates = new List<DateTime>();

int couter = 0;


for (DateTime dt = startingDate; dt <= endingDate; dt = dt.AddDays(1))

{

    if (dt.DayOfWeek != DayOfWeek.Saturday && dt.DayOfWeek != DayOfWeek.Sunday)

        dates.Add(dt);


    else

        counter++;

}

或者別的什么...


查看完整回答
反對 回復 2021-10-31
  • 3 回答
  • 0 關注
  • 282 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號