- 1 名前:デフォルトの名無しさん [2006/01/24(火) 09:48:23 ]
- このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。 FORTRAN使いが優しくコメントを返しますが、 お礼はFORTRANの布教と初心者の救済をお願いします。
- 6 名前:デフォルトの名無しさん [2006/01/27(金) 02:39:51 ]
- MODULE mod_subs
IMPLICIT NONE INTEGER, PARAMETER :: ndays_of_month(12, 2) = & RESHAPE( (/31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, & 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 /), (/12, 2/) ) CONTAINS LOGICAL FUNCTION qleapyear(iyear) IMPLICIT NONE INTEGER, INTENT(IN) :: iyear qleapyear = .FALSE. IF ( MOD(iyear, 4) == 0 ) qleapyear = .TRUE. IF ( MOD(iyear, 100) == 0 ) qleapyear = .FALSE. IF ( MOD(iyear, 1000) == 0 ) qleapyear = .TRUE. RETURN END FUNCTION qleapyear ! INTEGER FUNCTION idays_from_jan1(iyear, imonth, iday) IMPLICIT NONE INTEGER, INTENT(IN) :: iyear, imonth, iday INTEGER :: i, ileap, n ileap = 1 IF ( qleapyear(iyear) ) ileap = 2 n = 0 DO i = 1, imonth - 1 n = n + ndays_of_month(i, ileap) END DO idays_from_jan1 = n + iday RETURN END FUNCTION idays_from_jan1 END MODULE mod_subs
- 7 名前:デフォルトの名無しさん [2006/01/27(金) 02:41:02 ]
- PROGRAM AliceGame
USE mod_subs IMPLICIT NONE INTEGER :: iyear0, imonth0, iday0, iyear1, imonth1, iday1 INTEGER :: iyear, ndays, ndays0, ndays1 ! WRITE(*, *) "input birth date : Year, Month, Day" READ(*, *) iyear0, imonth0, iday0 ! WRITE(*, *) "input today's date : Year, Month, Day" READ(*, *) iyear1, imonth1, iday1 ! ndays0 = idays_from_jan1(iyear0, imonth0, iday0) ndays1 = idays_from_jan1(iyear1, imonth1, iday1) ndays = -ndays0 DO iyear = iyear0, iyear1 - 1 IF ( qleapyear(iyear) ) THEN ndays = ndays + 366 ELSE ndays = ndays + 365 END IF END DO ndays = ndays + ndays1 WRITE(*, *) "The number of days from birth =", ndays STOP END PROGRAM AliceGame 専ブラ インデント付き用 >>6-7
|

|