strings – Roast my C# birthday code

So this is a pretty simple code, I think it was?

It asks for the user’s birth day and month, and gives it back with the day a discount reminder email will be sent (the day before their birthday)

Now I tried to optimize as much as I could, possible wrong inputs and if the user’s birthday is the first of a month

Even though I’m still pretty new to coding, I still want you to criticize my code as much as I could, I would like to improve as much as I can

using System.Text.RegularExpressions;
using System.Linq;

namespace Exercice14
{
    class Program
    {
        static void Main(string() _)
        {
            // declaring some variables
            int birthDay;
            int reminderDay;
            string suffix = "th";
            string reminderSuffix = "th";
            string birthDayT;
            string birthMonth;
            string reminderMonth;
            string() months = {"January", "February", "March", "April", "May", "June", "July", "August", "September", 
                                 "October", "November", "December" };
            bool exceptionFirst = false;

            // prompts for birth month and capitalize first letter
            Console.WriteLine("Hello User!");
            Console.Write("Please enter your birth month in letters: ");
            birthMonth = Console.ReadLine();
            birthMonth = char.ToUpper(birthMonth(0)) + birthMonth.Substring(1);


            // check if birth month contains only letters
            while(Regex.IsMatch(birthMonth, @"^(a-zA-Z)+$") == false)
            {
                Console.WriteLine("Birth month should only contain letters!");
                Console.Write("Please enter your birth month in letters: ");
                birthMonth = Console.ReadLine();
                birthMonth = char.ToUpper(birthMonth(0)) + birthMonth.Substring(1);
            }

            // check if month is right
            while (months.Contains(birthMonth) == false)
            {
                Console.WriteLine("Invalid month?! Please enter a valid english month");
                Console.Write("Please enter your birth month: ");
                birthMonth = Console.ReadLine();
                birthMonth = char.ToUpper(birthMonth(0)) + birthMonth.Substring(1);
            }

            // prompts for birth day
            Console.Write("Please enter your birth day in numbers: ");
            birthDayT = Console.ReadLine();

            // check for valid day 
            while (int.TryParse(birthDayT, out int _) == false)
            {
                Console.WriteLine("Invalid argument! Please enter day in numerals");
                Console.Write("Please enter your birth day in numbers: ");
                birthDayT = Console.ReadLine();
            }

            // check for valid day number
            while (int.Parse(birthDayT) < 1 || int.Parse(birthDayT) > 31)
            {
                Console.WriteLine("Invalid date! Please enter a day between 1 and 31");
                Console.Write("Please enter birth day in numbers: ");
                birthDayT = Console.ReadLine();
            }

            // assign birth day to variable once tested
            birthDay = int.Parse(birthDayT);

            // set reminder day and month
            reminderDay = birthDay - 1;
            reminderMonth = birthMonth;

            // check which suffix to use for days AND calculate reminder day and month if exception
            if (birthDay == 1) //exception
            {
                exceptionFirst = true;
                suffix = "st";
                reminderMonth = months(Array.IndexOf(months, birthMonth) - 1);
            }
            if (birthDay == 2)
            {
                suffix = "nd";
                reminderSuffix = "st";
                reminderDay = 1;
            }
            if (birthDay == 3)
            {
                suffix = "th";
                reminderSuffix = "nd";
            }
            if (birthDay > 3)
            {
                suffix = "th";
                reminderSuffix = "th";
            }

            // print values
            Console.WriteLine();
            Console.WriteLine("Yer birthday is on the " + birthDay + suffix + " of " + birthMonth );

            if (exceptionFirst == true)
            {
                Console.WriteLine("A reminder email for your birthday discount " +
                    "nwill be sent on the last day of " + reminderMonth);
            }
            else
            {
                Console.WriteLine("A reminder email for your birthday discount " +
                    "nwill be sent on the " + reminderDay + reminderSuffix + " of " + reminderMonth);
            }

        }
    }
}

Montage display (name && birthday …) with emu8086

I need someone to help me with emu8086

Q1: Write a program that includes:
1- Ask for your name
2- Ask about your birthday
3- Enter your phone number
4- Ask for your address
The program then displays this information about you as follows:
Name Date of birth Telephone number Address
——– ———— —————— ———–

Q2: You have the following string:

"Aaabjhjhjkhaaaboioewiujdasdaaabkjlaabaopioioaaabaaaaaab"
Write a program that determines how often the pattern "aaab" appears in the string.
Display the specified string at (5,10).
Display the pattern you are looking for under (6,10).
Time of the pattern Appearance of the pattern at (7.10)

The search API excludes zero birthday records in SharePoint Online

I'm building a birthday web part. I use the search API to get the following user details:

var birthday = 'RefinableDate00';

    fetch(this.props.SPUrl + "/_api/search/query?querytext=%27*%27&selectproperties=%27WorkEmail,LastName,FirstName,RefinableDate00,RefinableDate01,Date00,BirthdateOWSDATE%27&sourceid=%27B09A7990-05EA-4AF9-81EF-EDFAB16C4E31%27&rowlimit=500&sortlist=%27" + birthday + ":ascending%27",
      {
        method: 'GET',
        headers: {
          "Accept": "application/json; odata=verbose"
        }
      })
      .then((response) => {
        return response.json();
      })
      .then((data) => {

        if (data.d.query.PrimaryQueryResult.RelevantResults.Table.Rows.results.length > 0) {
          console.log(data.d.query.PrimaryQueryResult.RelevantResults.Table.Rows.results);
          var items = ();
          data.d.query.PrimaryQueryResult.RelevantResults.Table.Rows.results.map((item) => {
            if (item.Cells.results(5).Value) {
              items.push({
                "FirstName": item.Cells.results(4).Value ? item.Cells.results(4).Value : "",
                "LastName": item.Cells.results(3).Value ? item.Cells.results(3).Value : "",
                "WorkPhone": item.Cells.results(7).Value ? item.Cells.results(7).Value : "",
                "WorkEmail": item.Cells.results(2).Value,
                //"Department":item.Cells.results(5).Value?item.Cells.results(5).Value:"",                                                  
                "OfficeNumber": item.Cells.results(2).Value ? item.Cells.results(2).Value : "",
                "JobTitl": item.Cells.results(8).Value ? item.Cells.results(8).Value : "",
                "PictureURL": item.Cells.results(9).Value ? item.Cells.results(9).Value : "",
                "BirthDate": item.Cells.results(5).Value,
                "AnniversaryDate": item.Cells.results(6).Value
              });
            }
          });
          console.log(items);
          var today = new Date();
          var enddate = new Date(new Date().setDate(today.getDate() + 30));
          var filteredUsers = items.filter((item) => {
            if (item.BirthDate) {
              var birthDate = new Date(item.BirthDate);
              if (item.FirstName == "" || item.FirstName == "null" || item.FirstName == "undefined" || item.FirstName == undefined || item.FirstName == null) {
                return false; //hide result if firtstname is empty
              }
              var nextMonth = new Date((today.getMonth() + 2) + "/" + today.getDate() + "/" + today.getFullYear());
              //return (anniversaryDate >= today && anniversaryDate < nextMonth?item:null)
              //return ((birthDate.getDate() >= today.getDate() && birthDate.getMonth() >= today.getMonth()) && (birthDate.getMonth() < nextMonth.getMonth()));
              return (new Date(birthDate.getMonth() + 1 + "-" + birthDate.getDate() + "-" + today.getFullYear()).getTime() >= today.getTime()) && (new Date(birthDate.getMonth() + 1 + "-" + birthDate.getDate() + "-" + today.getFullYear()).getTime() <= enddate.getTime());

            }
          });

It works well, but the problem is that it takes time to load details. Is there a way to check zero birthdays directly in the API call so that I can only get the results with birthdays and the burden can be reduced?

I checked below:

Solve the Prepare Birthday Problem

I am a Scrum Master. Part of my job is to prepare a small gift for the team members' birthday.

The current solution that doesn't work well.

For example, Bob's birthday is May 20.

I'll create a calendar entry on May 13 to remind you. But I already have a lot of entries. Sometimes entries are overlooked and the next day I don't check yesterday's appointments.

How can you solve this with a web application?

So far with already used Gsuite, Trello, Jira, Github. I would like to avoid using a new tool, but if it is really good I would give it a try.

sharepoint online – search query API to get the birthday date

I'm trying to use the Sharepoint REST API to get all the user birthdays. So I'm using a crawled property People: SPS birthday with the managed property RefinableDate00,

Yesterday, 08/15/19 (Thursday) it worked fine, but today when I search the users with the query:

_api/search/query?querytext=*&selectproperties='PreferredName,PictureURL,AccountName,RefinableDate00'&sourceid='b09a7990-05ea-4af9-81ef-edfab16c4e31'

The RefinableDate00 is empty.

I do not know why that happens, someone has seen such a thing before?

What kind of lighting for beginners is intended for a birthday party photo booth?

I have a traditional Korean Doljanchi birthday party where we set up a photo area around a traditional banquet table where guests can take pictures with the decorations and the baby.

A setup that looks something like this:
Enter image description here
Enter image description here

It could also be a few action shots

Enter image description here

What kind of lighting should I buy and how should I set it up? I am a beginner photographer and it will be in a small interior with high ceilings and no windows. I'll be on a budget, so look for the biggest bang for the money.

I saw these 2 on Amazon

Umbrella lights

Diffuser lights

Is one of these two lighting kits recommended for my work? Should I perform an over-the-shoulder setup for the light source?