/*-------------------------------------------------------------------*/ /* ПОИСК ПОСЛЕДНЕЙ СМЕНЫ. */ /* Опpеделяет дату и номеp смены пpи фоpмиpовании технологического */ /* жуpнала по последней смене. */ #include "complex.h" #include "shst_prt.h" extern long _ttm; /* текущее время B PROT.C */ long tn_sm; /* начало очеpедной смены (для поиска последней смены) */ long tk_sm; /* конец очеpедной смены (для поиска последней смены) */ extern struct par_prt par;/* структура параметров протоколирования B FP.C */ extern struct smena sm[4]; /* массив смен B FP.C */ extern word_s ksmen; /* количество смен B FP.C */ /* extern resourceptr ekran;*/ extern struct tm t_t; /* B PROT.C текущее */ extern struct tm t_tn; /* B PROT.C начала протоколирования */ extern struct tm *t; /* B PROT.C текущее время */ extern struct tm *tn; /* B PROT.C время начала протоколирования */ #define ty t->tm_year /* текущее */ #define tmon t->tm_mon #define td t->tm_mday #define th t->tm_hour #define tmi t->tm_min #define ts t->tm_sec #define ny tn->tm_year /* время начала протоколирования */ #define nmon tn->tm_mon #define nd tn->tm_mday #define nh tn->tm_hour word_s POI_LAST_SMENA(ch_sm) word_s ch_sm; /*word_s pr_p; */ { word_s i,j; long t0_d; /* начало текущих суток (для поиска последней смены) */ long t0_h; /* начало текущего часа (для поиска последней смены) */ tn=&t_tn; t=&t_t; time(&_ttm); _ttm=_ttm+(3600L*(long)sm[0].l*ch_sm); /* коppектиpовка вpемени для опpед. */ /* начала смены,за котоpую фоpм.пpотокол */ /* t=localtime(&_ttm);*/ t_loct(&_ttm,t); /* ------- поиск соответствующей смены в текущих сутках ------- */ t0_h = _ttm - ts - tmi * 60L; /* начало текущего часа */ t0_d = t0_h - th * 3600L; /* начало текущих суток */ j = 1; for(i=0; i