Getting next upcoming day from given days array comparing toady C#










0















I got an array of days, have to select next upcoming day by comparing today,
here is my code snippet-



private string GetUpcomingDeliveryDay(string today, ModelSetting ObjModelSetting)

//string today = DateTime.Now.DayOfWeek.ToString(); //Tuesday
// daysOfDeliveries = ("Monday","Friday")
string daysOfDeliveries = Convert.ToString(ObjModelSetting.DeliveryDays).Split(',');
string nextDelivery = string.Empty;

return nextDelivery;



ex. if today is Monday and it is present in the array then it should return Monday else upcoming closest day from that array.



I never worked on days and date section before so it's getting harder for me.
thank you!










share|improve this question


























    0















    I got an array of days, have to select next upcoming day by comparing today,
    here is my code snippet-



    private string GetUpcomingDeliveryDay(string today, ModelSetting ObjModelSetting)

    //string today = DateTime.Now.DayOfWeek.ToString(); //Tuesday
    // daysOfDeliveries = ("Monday","Friday")
    string daysOfDeliveries = Convert.ToString(ObjModelSetting.DeliveryDays).Split(',');
    string nextDelivery = string.Empty;

    return nextDelivery;



    ex. if today is Monday and it is present in the array then it should return Monday else upcoming closest day from that array.



    I never worked on days and date section before so it's getting harder for me.
    thank you!










    share|improve this question
























      0












      0








      0








      I got an array of days, have to select next upcoming day by comparing today,
      here is my code snippet-



      private string GetUpcomingDeliveryDay(string today, ModelSetting ObjModelSetting)

      //string today = DateTime.Now.DayOfWeek.ToString(); //Tuesday
      // daysOfDeliveries = ("Monday","Friday")
      string daysOfDeliveries = Convert.ToString(ObjModelSetting.DeliveryDays).Split(',');
      string nextDelivery = string.Empty;

      return nextDelivery;



      ex. if today is Monday and it is present in the array then it should return Monday else upcoming closest day from that array.



      I never worked on days and date section before so it's getting harder for me.
      thank you!










      share|improve this question














      I got an array of days, have to select next upcoming day by comparing today,
      here is my code snippet-



      private string GetUpcomingDeliveryDay(string today, ModelSetting ObjModelSetting)

      //string today = DateTime.Now.DayOfWeek.ToString(); //Tuesday
      // daysOfDeliveries = ("Monday","Friday")
      string daysOfDeliveries = Convert.ToString(ObjModelSetting.DeliveryDays).Split(',');
      string nextDelivery = string.Empty;

      return nextDelivery;



      ex. if today is Monday and it is present in the array then it should return Monday else upcoming closest day from that array.



      I never worked on days and date section before so it's getting harder for me.
      thank you!







      c# asp.net datetime






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 13 '18 at 9:07









      T. GiriT. Giri

      274




      274






















          2 Answers
          2






          active

          oldest

          votes


















          1














          If you have daysOfDeliveries in DaysOfWeek format then it will be easy. So if it is in string format first you need to convert it to Enum.DaysOfWeek. The rest will be a simple comparison:



          var days = daysOfDeliveries.Select(x => (DayOfWeek)Enum.Parse(typeof(DayOfWeek), x)).ToArray();
          DayOfWeek today = DateTime.Now.DayOfWeek;
          var nextDelivery = days.Where(x => x >= today).FirstOrDefault();


          please make sure that the strings in daysOfDeliveries comply with the Enum names.






          share|improve this answer























          • thank you its working perfectly!

            – T. Giri
            Nov 13 '18 at 10:04


















          0














          You can try something like this:



          private static string GetUpcomingDeliveryDay(string today, string days) 

          if (days.Length == 0)

          return string.Empty;


          if (days.Any(x => x == today.ToString()))

          return today;


          var day = string.Empty;
          var allDays = Enum.GetValues(typeof(DayOfWeek));
          var i = Array.IndexOf(allDays, Enum.Parse(typeof(DayOfWeek), today));

          while (string.IsNullOrEmpty(day))

          i++;

          if (i >= allDays.Length)

          i = 0;


          if (days.Any(x => x == allDays.GetValue(i).ToString()))

          day = allDays.GetValue(i).ToString();



          return day;






          share|improve this answer






















            Your Answer






            StackExchange.ifUsing("editor", function ()
            StackExchange.using("externalEditor", function ()
            StackExchange.using("snippets", function ()
            StackExchange.snippets.init();
            );
            );
            , "code-snippets");

            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "1"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53277372%2fgetting-next-upcoming-day-from-given-days-array-comparing-toady-c-sharp%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            1














            If you have daysOfDeliveries in DaysOfWeek format then it will be easy. So if it is in string format first you need to convert it to Enum.DaysOfWeek. The rest will be a simple comparison:



            var days = daysOfDeliveries.Select(x => (DayOfWeek)Enum.Parse(typeof(DayOfWeek), x)).ToArray();
            DayOfWeek today = DateTime.Now.DayOfWeek;
            var nextDelivery = days.Where(x => x >= today).FirstOrDefault();


            please make sure that the strings in daysOfDeliveries comply with the Enum names.






            share|improve this answer























            • thank you its working perfectly!

              – T. Giri
              Nov 13 '18 at 10:04















            1














            If you have daysOfDeliveries in DaysOfWeek format then it will be easy. So if it is in string format first you need to convert it to Enum.DaysOfWeek. The rest will be a simple comparison:



            var days = daysOfDeliveries.Select(x => (DayOfWeek)Enum.Parse(typeof(DayOfWeek), x)).ToArray();
            DayOfWeek today = DateTime.Now.DayOfWeek;
            var nextDelivery = days.Where(x => x >= today).FirstOrDefault();


            please make sure that the strings in daysOfDeliveries comply with the Enum names.






            share|improve this answer























            • thank you its working perfectly!

              – T. Giri
              Nov 13 '18 at 10:04













            1












            1








            1







            If you have daysOfDeliveries in DaysOfWeek format then it will be easy. So if it is in string format first you need to convert it to Enum.DaysOfWeek. The rest will be a simple comparison:



            var days = daysOfDeliveries.Select(x => (DayOfWeek)Enum.Parse(typeof(DayOfWeek), x)).ToArray();
            DayOfWeek today = DateTime.Now.DayOfWeek;
            var nextDelivery = days.Where(x => x >= today).FirstOrDefault();


            please make sure that the strings in daysOfDeliveries comply with the Enum names.






            share|improve this answer













            If you have daysOfDeliveries in DaysOfWeek format then it will be easy. So if it is in string format first you need to convert it to Enum.DaysOfWeek. The rest will be a simple comparison:



            var days = daysOfDeliveries.Select(x => (DayOfWeek)Enum.Parse(typeof(DayOfWeek), x)).ToArray();
            DayOfWeek today = DateTime.Now.DayOfWeek;
            var nextDelivery = days.Where(x => x >= today).FirstOrDefault();


            please make sure that the strings in daysOfDeliveries comply with the Enum names.







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Nov 13 '18 at 9:35









            roozbeh Sroozbeh S

            8381411




            8381411












            • thank you its working perfectly!

              – T. Giri
              Nov 13 '18 at 10:04

















            • thank you its working perfectly!

              – T. Giri
              Nov 13 '18 at 10:04
















            thank you its working perfectly!

            – T. Giri
            Nov 13 '18 at 10:04





            thank you its working perfectly!

            – T. Giri
            Nov 13 '18 at 10:04













            0














            You can try something like this:



            private static string GetUpcomingDeliveryDay(string today, string days) 

            if (days.Length == 0)

            return string.Empty;


            if (days.Any(x => x == today.ToString()))

            return today;


            var day = string.Empty;
            var allDays = Enum.GetValues(typeof(DayOfWeek));
            var i = Array.IndexOf(allDays, Enum.Parse(typeof(DayOfWeek), today));

            while (string.IsNullOrEmpty(day))

            i++;

            if (i >= allDays.Length)

            i = 0;


            if (days.Any(x => x == allDays.GetValue(i).ToString()))

            day = allDays.GetValue(i).ToString();



            return day;






            share|improve this answer



























              0














              You can try something like this:



              private static string GetUpcomingDeliveryDay(string today, string days) 

              if (days.Length == 0)

              return string.Empty;


              if (days.Any(x => x == today.ToString()))

              return today;


              var day = string.Empty;
              var allDays = Enum.GetValues(typeof(DayOfWeek));
              var i = Array.IndexOf(allDays, Enum.Parse(typeof(DayOfWeek), today));

              while (string.IsNullOrEmpty(day))

              i++;

              if (i >= allDays.Length)

              i = 0;


              if (days.Any(x => x == allDays.GetValue(i).ToString()))

              day = allDays.GetValue(i).ToString();



              return day;






              share|improve this answer

























                0












                0








                0







                You can try something like this:



                private static string GetUpcomingDeliveryDay(string today, string days) 

                if (days.Length == 0)

                return string.Empty;


                if (days.Any(x => x == today.ToString()))

                return today;


                var day = string.Empty;
                var allDays = Enum.GetValues(typeof(DayOfWeek));
                var i = Array.IndexOf(allDays, Enum.Parse(typeof(DayOfWeek), today));

                while (string.IsNullOrEmpty(day))

                i++;

                if (i >= allDays.Length)

                i = 0;


                if (days.Any(x => x == allDays.GetValue(i).ToString()))

                day = allDays.GetValue(i).ToString();



                return day;






                share|improve this answer













                You can try something like this:



                private static string GetUpcomingDeliveryDay(string today, string days) 

                if (days.Length == 0)

                return string.Empty;


                if (days.Any(x => x == today.ToString()))

                return today;


                var day = string.Empty;
                var allDays = Enum.GetValues(typeof(DayOfWeek));
                var i = Array.IndexOf(allDays, Enum.Parse(typeof(DayOfWeek), today));

                while (string.IsNullOrEmpty(day))

                i++;

                if (i >= allDays.Length)

                i = 0;


                if (days.Any(x => x == allDays.GetValue(i).ToString()))

                day = allDays.GetValue(i).ToString();



                return day;







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 13 '18 at 10:16









                Sergiu MuresanSergiu Muresan

                3146




                3146



























                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53277372%2fgetting-next-upcoming-day-from-given-days-array-comparing-toady-c-sharp%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    這個網誌中的熱門文章

                    How to read a connectionString WITH PROVIDER in .NET Core?

                    In R, how to develop a multiplot heatmap.2 figure showing key labels successfully

                    Museum of Modern and Contemporary Art of Trento and Rovereto