As mentioned, in Windows 10, Task Scheduler can be used to schedule a program by day of week. If you want to use Task Scheduler to do this and your program doesn't need to start on login the steps would be the following:
Task Scheduler->Action->Create Basic Task ->Fill in Name->
Next->Weekly->Check day of week->
Browse and select your program->
However, the OP appears to be asking how to start a program by day of week on login/startup. Task Scheduler can start a program by day of week OR login but does not appear to allow you to specify both.
To do that you can write a simple VBS script called something like "ExecuteByDayOfWeekOnStartup.vbs" and put it in your Startup folder. To open your startup folder, open the Run window (Win+R) and type
shell:startup. This is based on this microsoft technet answer. on determining the day of the week.
Here's a sample vbs script:
Set WshShell = CreateObject("WScript.Shell")
dtmToday = Date()
dtmDayOfWeek = DatePart("w", dtmToday)
Select Case dtmDayOfWeek
Case 1 'Sunday
Case 2 'Monday
Case 3 'Tuesday
Case 4 'Wednesday
Case 5 'Thursday
Case 6 'Friday
Case 7 'Saturday
This is easier than the Task Scheduler as it doesn't require going through the wizard for each task and only requires simple editing of one file. It also allows you to easily specify more than one program to start on each weekday. If the program is not in your system PATH then be sure to add the full path name within the quotes.