Практика программирования (Бейсик, Си, Паскаль)


         

b AS INTEGER, mm AS


CLS

INPUT "Задайте год григорианского календаря : ",Y%

INPUT "Задайте месяц григорианского календаря : ",М%

INPUT "Задайте день : ",D%

PRINT "день недели = ";WeekDay(Y%, M%, D%)

END

FUNCTION JD(Y%,M%,DT)

DIM a AS INTEGER, b AS INTEGER, mm AS INTEGER, yy AS INTEGER

DIM с AS LONG

b=0

yy=Y%

mm=M%

IF M%<3 THEN yy=yy-l: mm=ram+12

a=yy\100

IF Y%+M%/100!+DT/10000>1582.1015# THEN

b=b+2-a+a\4 END IF

c=INT(365.25*yy)

IF yy<0 THEN c=INT(365.25*yy-.75)
JD=c+INT(30.6001*(mm+1))+DT+1720994.5#+b
END FUNCTION

FUNCTION WeekDay(Y%,M%,D%)

' Определение дня недели

' Y - григорианский год

' М - григорианский месяц (1 - 12)

' D - день (1 - 31)

' Возвращаемое значение :

' 0 - воскр., 1 - понед., 2 - вторник,...

WeekDay=INT(JD(Y%,M%,D%+1.5)) MOD 7
END FUNCTION

Программа 9_04.с

#include <stdio.h>
#include <conio.h>
#include <math.h>

int week_day(int Y,int M,int D);
double JD(int Y,int M,double DT);

main() {

int Y,M,D,day;

clrscr();

printf("\nЗадайте год григорианского календаря : ") ;

scanf("%d",&Y);

printf("\nЗадайте месяц григорианского календаря : ");

scanf("%d",&M);

printf("\nЗадайте день : ") ;

scanf("%d",&D);

day=week_day (Y, M, D) ,-

printf("\пдень недели = %d",day) ;

getch();

}

/*--------------------------------*/

int week_day(int У,int M,int D)

/* Вычисление дня недели */

/* Возвращаемое значение : */

/* 0 - воскр., 1 - понед., 2 - вторник,... */
/************************************/

{

return (long)(JD(Y,M,(double)D)+1.5) % 7;

}

/*---------------------------------*/

double JD(int Y,int M,double DT) int a,b=0,m,y;

long c;

y=Y;

m=M;

if (M<3) { y--; m += 12; }

a=y/100;

if(Y+M/100.+DT/10000 > 1582.1015) b += 2-a+(int)(a/4.);

c=365.25*y;

if(y<0)c=365.25*y-0.75;

return c+(long)(30.6001*(m+1))+DT+1720994.5+b; }

Содержание  Назад  Вперед