MatLab: Urgent help with problem. Can someone help me fix my code or help me wri
ID: 3769354 • Letter: M
Question
MatLab: Urgent help with problem. Can someone help me fix my code or help me write a new code?
Given that October 23 was a Friday, what, day of the week was October 5? Or October 28? One way to answer correctly is to answer the more general question: given that a particular day of a particular month is a particular day of the week, what day of the week is any other day of that same month? That will be your job for this portion of the assignment. Specifically, write a Matlab function called newdatecellout.m to accomplish this job. Your function should take two input parameters as follows: datecell, a 1 Times 3 cell array with the following contents: first cell identifies the day of the week as one of the strings 'U', 'M', 'T', 'W', 'R', 'F', or 'S'; second cell signifies the month as a number from 1 to 12; third cell identifies the date as a particular number between 1 and n, where n is the number of days in the mouth stored in the second cell newday, a number representing a different date in the month stored in the second cell of datecell The output of the function should be a cell array called newdatecell, with the same format as the input parameter datecell, but with specific values customized for the alternate date of the same month given in newday. For example, to answer the initial question posed in this problem, one could define C = {'F', 10, 23}, then call the function as newdatecellout(C, 5), and the output should be the cell array {'M', 10, 5}. Similarly, if D = {'R', 4, 5}, then the function call newdatecellout(D, 23) should have the cell array {'M', 4, 23} as its output. For simplicity, you may avoid considering leaps years...i.e., for this problem you may assume February will always have 28 days.Explanation / Answer
#include<stdio.h>
#include<conio.h>
#include<math.h>
int fm(int date, int month, int year) {
int fmonth, leap;
//leap function 1 for leap & 0 for non-leap
if ((year % 100 == 0) && (year % 400 != 0))
leap = 0;
else if (year % 4 == 0)
leap = 1;
else
leap = 0;
fmonth = 3 + (2 - leap) * ((month + 2) / (2 * month))
+ (5 * month + month / 9) / 2;
//bring it in range of 0 to 6
fmonth = fmonth % 7;
return fmonth;
}
//----------------------------------------------
int day_of_week(int date, int month, int year) {
int dayOfWeek;
int YY = year % 100;
int century = year / 100;
printf(" Date: %d/%d/%d ", date, month, year);
dayOfWeek = 1.25 * YY + fm(date, month, year) + date - 2 * (century % 4);
//remainder on division by 7
dayOfWeek = dayOfWeek % 7;
switch (dayOfWeek) {
case 0:
printf("weekday = Saturday");
break;
case 1:
printf("weekday = Sunday");
break;
case 2:
printf("weekday = Monday");
break;
case 3:
printf("weekday = Tuesday");
break;
case 4:
printf("weekday = Wednesday");
break;
case 5:
printf("weekday = Thursday");
break;
case 6:
printf("weekday = Friday");
break;
default:
printf("Incorrect data");
}
return 0;
}
//------------------------------------------
int main() {
int date, month, year;
printf(" Enter the year ");
scanf("%d", &year);
printf(" Enter the month ");
scanf("%d", &month);
printf(" Enter the date ");
scanf("%d", &date);
day_of_week(date, month, year);
return 0;
}