1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Homework Help: FORTRAN 90 Help- reading input in format DDMMYYYY + more

  1. Oct 4, 2011 #1
    1. The problem statement, all variables and given/known data

    This is assignment is on FORTRAN 90:

    In an assignment i have, i am to enter a date in the format DDMMYYYY, and its suppose to compute and display the day of the week that date falls on (based on a given algorithm). I was able to code a program that would give me the right day of the week, however, i was only able to get it to work in the format: date, month, year (with commas separating each of them). How can i get my program to read the date DDMMYYYY, without the commas.

    For part 2, i am to use the program to determine the day of the week my birthday falls on, then i should find the next five times (after 2011) that my birthday falls on that same day of the week.

    3. The attempt at a solution

    For part 1, this is what i did:


    PROGRAM assignment2

    INTEGER:: Day, Month, Year, Century, H

    READ(*,*) Day,Month,Year !to read in format DD,MM,YYYY

    Month = Month -2
    !this accounts for unusual format for months (eg. March=01......February=12)
    If (Month <= 0) Month = Month + 12
    IF (Month >= 11) Year = Year - 1
    Century = INT(Year / 100)
    !eg. 2011 = 20
    Year = MOD(Year, 100)
    !eg. 2011= 11
    H = INT(13 * Month - 1)/5 + Day + Year + &
    (Year / 4) + (Century / 4) - 2*Century
    H = MOD(H,7)
    IF (MOD(H,7) < 0) H = MOD(H,7) + 7
    !this will make sure our day of the week is a positive integer
    write(*,*) 'Day Of the Week :',H

    END PROGRAM assignment2


    For part 2, i am completely lost. I understand that i will need to do a DO LOOP, but have no idea what to do.

    Please help.

  2. jcsd
  3. Oct 5, 2011 #2
    If I am understanding you correctly regarding your comma question, you could use a formatted input.

    integer dd,mm,yyyy

    100 format(2i2,1i4)

    Thus February 4, 1977 would be entered as: 04021977. It would have to be left justified. The 5 in the format statement means it is reading from keyboard input. It won't work unless it is left justified.

    100 format(2i2,1i4)
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook