Day of Week - Natural language processing and date parsing
JavaScript (ES6), 254 bytes

s=&gt;(F=e=&gt;'0x'+'0A39135?2B?8602467'[parseInt(s.match(e+' ([A-Z]\\w+)')[1],33)%234%81%19],n=(F`s.{5}`-(g=m=&gt;new Date(~F`(no|le).*`,m).getDay())(F`s`)+g(F`l`)+7)%7)-F` .{9}a`?`No, it will be a ${'Sun,Mon,Tues,Wednes,Thurs,Fri,Satur'.split`,`[n]}day.`:`Yes.`

Try it online!
How?
Given the leading part e of a regular expression, the helper function F looks for the capitalized word that immediately follows and turns it into either a 0-indexed day (from 0 = Sunday to 6 = Saturday) or a 0-indexed month (from 0 = January to 11 = December).
F = e =&gt;                // e = regular expression part, as a string
  '0x' +                // parse as hexadecimal
  '0A39135?2B?8602467'[ // a digit between '0' and 'B'
    parseInt(           //   selected by 1) parsing
      s.match(          //     the sub-string in s that matches
        e +             //       the leading part of the regular expression
        ' ' +           //       followed by a space
        '([A-Z]\\w+)'   //       followed by a capturing group for
      )[1],             //       a capitalized word (which is what we keep)
      33                //     in base 33
    )                   //   end of parseInt()
    % 234 % 81 % 19     //   and 2) applying a modulo chain
  ]                     // end of digit lookup

Try the hash function online!
We invoke F with:

&quot;s.{5}&quot; to match &quot;begins on a [day]&quot;
&quot;s&quot; to match &quot;is [month]&quot;
&quot;l&quot; to match &quot;will [month]&quot; (the w may also be capitalized)
&quot; .{9}a&quot; to match either &quot; start on a [day]&quot; or &quot; begin on a [day]&quot;
&quot;(no|le).*&quot; to match either &quot;not&quot; or &quot;leap&quot;, whichever comes first (this is a special case where the capitalized word is put in a 2nd capturing group and ignored)

The helper function g takes a month and returns a week day in [0..6]:
g = m =&gt; new Date(~F`(no|le).*`, m).getDay()

The expression ~F`(no|le).*` in there evaluates to -1 if &quot;no&quot; is matched (not leap) or to -4 if &quot;le&quot; is matched (leap). This works as expected because the year -4 is leap1 and the year -1 is not.
Using g and the data collected above, we create two dates in the same reference year and look for the difference between the corresponding week days, modulo 7. This allows us to answer the question.

1: At least that's what JS thinks. But this is apparently not true.