?? time.c
字號:
point=SumPoint+OldPoint-point;
}
else
point=OldPoint-point;
}
else
{
PointPreOrNext=POINTPRE;
PointCircleNum=0;
return(OldPoint);
}
}
return(point);
}
uchar PdTime(struct TIME_ITEM_D *OldTime,uchar NowYear,uchar NowMonth,uchar NowDay,
uchar NowHour,uchar NowMinute)
{
FmuPublic_Watchdog();
if((*OldTime).Year>NowYear)
{
return(TIMESMALL);
}
else if((*OldTime).Year<NowYear)
{
return(TIMEBIG);
}
else if((*OldTime).Month>NowMonth)
{
return(TIMESMALL);
}
else if((*OldTime).Month<NowMonth)
{
return(TIMEBIG);
}
else if((*OldTime).Day>NowDay)
{
return(TIMESMALL);
}
else if((*OldTime).Day<NowDay)
{
return(TIMEBIG);
}
else if((*OldTime).Hour>NowHour)
{
return(TIMESMALL);
}
else if((*OldTime).Hour<NowHour)
{
return(TIMEBIG);
}
else if((*OldTime).Minute>NowMinute)
{
return(TIMESMALL);
}
else if((*OldTime).Minute<NowMinute)
{
return(TIMEBIG);
}
else return(TIMESAME);
}
void GetPointPreTime(ulong PointPreNum,uint spacetemp,uchar OldYear,uchar OldMonth
,uchar OldDay,uchar OldHour,uchar OldMinute)
{
ucharx PreYear,year_rday;
uintx PreDay,PreMinute;
uintx PreNumDay;
ulongx OldMinuteNum,PreMintueNum;
FmuPublic_Watchdog();
ApplPreTime.Year=OldYear;
PreDay =GetDayInYear(OldYear,OldMonth,OldDay);
PreYear =BCD_HEX(OldYear);
OldMinuteNum =(ulong)((uint)(BCD_HEX(OldMinute))+(uint)(BCD_HEX(OldHour))*60);
PreMintueNum =(ulong)(PointPreNum*spacetemp);
if(OldMinuteNum>PreMintueNum)
{
PreMinute=(uint)(OldMinuteNum-PreMintueNum);
}
else
{
PreMinute=(uint)(PreMintueNum%1440);
if(OldMinuteNum>PreMinute)
{
PreMinute=(uint)(OldMinuteNum-PreMinute);
PreNumDay=(uint)(PreMintueNum/1440);
}
else
{
PreMinute=(uint)(1440+OldMinuteNum-PreMinute);
PreNumDay=(uint)(PreMintueNum/1440)+1;
}
if(PreDay>PreNumDay)
{
PreDay-=PreNumDay;
}
else
{
PreYear-=1;
if(PreYear%4==0)
{
PreDay=366+PreDay-PreNumDay;
ApplPreTime.Year=HEX_BCD(BCD_HEX(OldYear)-1);
}
else
{
PreDay=365+PreDay-PreNumDay;
ApplPreTime.Year=HEX_BCD(BCD_HEX(OldYear)-1);
}
}
}
//分
ApplPreTime.Minute = HEX_BCD(PreMinute%60);////
//時
ApplPreTime.Hour = HEX_BCD((PreMinute/60)%24);////
PreDay = PreDay + PreMinute/1440;
//日
//月
if((BCD_HEX(PreYear)%4)==0)
year_rday=1;
else
year_rday=0;
if(PreDay<=31)
{
ApplPreTime.Day = HEX_BCD(PreDay);
ApplPreTime.Month = 1;
}
else if(PreDay<=(59+year_rday))
{
ApplPreTime.Day = HEX_BCD(PreDay-31);
ApplPreTime.Month = 2;
}
else if(PreDay<=(90+year_rday))
{
ApplPreTime.Day = HEX_BCD(PreDay-59-year_rday);
ApplPreTime.Month = 3;
}
else if(PreDay<=(120+year_rday))
{
ApplPreTime.Day = HEX_BCD(PreDay-90-year_rday);
ApplPreTime.Month = 4;
}
else if(PreDay<=(151+year_rday))
{
ApplPreTime.Day = HEX_BCD(PreDay-120-year_rday);
ApplPreTime.Month = 5;
}
else if(PreDay<=(181+year_rday))
{
ApplPreTime.Day = HEX_BCD(PreDay-151-year_rday);
ApplPreTime.Month = 6;
}
else if(PreDay<=(212+year_rday))
{
ApplPreTime.Day = HEX_BCD(PreDay-181-year_rday);
ApplPreTime.Month = 7;
}
else if(PreDay<=(243+year_rday))
{
ApplPreTime.Day = HEX_BCD(PreDay-212-year_rday);
ApplPreTime.Month = 8;
}
else if(PreDay<=(273+year_rday))
{
ApplPreTime.Day = HEX_BCD(PreDay-243-year_rday);
ApplPreTime.Month = 9;
}
else if(PreDay<=(304+year_rday))
{
ApplPreTime.Day = HEX_BCD(PreDay-273-year_rday);
ApplPreTime.Month = 0x10;
}
else if(PreDay<=(334+year_rday))
{
ApplPreTime.Day = HEX_BCD(PreDay-304-year_rday);
ApplPreTime.Month = 0x11;
}
else if(PreDay<=(365+year_rday))
{
ApplPreTime.Day = HEX_BCD(PreDay-334-year_rday);
ApplPreTime.Month = 0x12;
}
else
{
ApplPreTime.Day = HEX_BCD(PreDay-365-year_rday);
ApplPreTime.Month = 0x13;
}
FmuPublic_Watchdog();
}
void GetPointNextTime(ulong PointNextNum,uint spacetemp,uchar OldYear,uchar OldMonth
,uchar OldDay,uchar OldHour,uchar OldMinute)
{
ucharx NextMinute;
ucharx year_rday;
uintx day,NextHour,NextDay;
ulongx temp;
FmuPublic_Watchdog();
ApplNextTime.Year=OldYear;
temp=(ulong)(spacetemp*PointNextNum);
//分
NextMinute=(uint)(temp%60)+BCD_HEX(OldMinute);
ApplNextTime.Minute = HEX_BCD(NextMinute%60);////
//時
//if(NextMinute>=60)
// NextHour=1;
//else NextHour=0;
NextHour=NextMinute/60+(uint)(temp/60)+BCD_HEX(OldHour);
ApplNextTime.Hour = HEX_BCD(NextHour%24);////
//日
//if(NextHour>=24)
NextDay=NextHour/24;
//else NextDay=0;
if(NextDay==0)
{
ApplNextTime.Day = OldDay;
ApplNextTime.Month= OldMonth;
}
else//月
{
day=GetDayInYear(OldYear,OldMonth,OldDay);
day=day+NextDay;
if((BCD_HEX(OldYear)%4)==0)
{
if(day>366)
{
day-=366;
ApplNextTime.Year=HEX_BCD(BCD_HEX(OldYear)+1);
year_rday=0;
}
else year_rday=1;
}
else
{
if(day>365)
{
ApplNextTime.Year=HEX_BCD(BCD_HEX(OldYear)+1);
day-=365;
if(((BCD_HEX(OldYear)+1)%4)==0)
year_rday=1;
else year_rday=0;
}
else year_rday=0;
}
if(day<=31)
{
ApplNextTime.Day = HEX_BCD(day);
ApplNextTime.Month = 1;
}
else if(day<=(59+year_rday))
{
ApplNextTime.Day = HEX_BCD(day-31);
ApplNextTime.Month = 2;
}
else if(day<=(90+year_rday))
{
ApplNextTime.Day = HEX_BCD(day-59-year_rday);
ApplNextTime.Month = 3;
}
else if(day<=(120+year_rday))
{
ApplNextTime.Day = HEX_BCD(day-90-year_rday);
ApplNextTime.Month = 4;
}
else if(day<=(151+year_rday))
{
ApplNextTime.Day = HEX_BCD(day-120-year_rday);
ApplNextTime.Month = 5;
}
else if(day<=(181+year_rday))
{
ApplNextTime.Day = HEX_BCD(day-151-year_rday);
ApplNextTime.Month = 6;
}
else if(day<=(212+year_rday))
{
ApplNextTime.Day = HEX_BCD(day-181-year_rday);
ApplNextTime.Month = 7;
}
else if(day<=(243+year_rday))
{
ApplNextTime.Day = HEX_BCD(day-212-year_rday);
ApplNextTime.Month = 8;
}
else if(day<=(273+year_rday))
{
ApplNextTime.Day = HEX_BCD(day-243-year_rday);
ApplNextTime.Month = 9;
}
else if(day<=(304+year_rday))
{
ApplNextTime.Day = HEX_BCD(day-273-year_rday);
ApplNextTime.Month = 0x10;
}
else if(day<=(334+year_rday))
{
ApplNextTime.Day = HEX_BCD(day-304-year_rday);
ApplNextTime.Month = 0x11;
}
else if(day<=(365+year_rday))
{
ApplNextTime.Day = HEX_BCD(day-334-year_rday);
ApplNextTime.Month = 0x12;
}
else
{
ApplNextTime.Day = HEX_BCD(day-365-year_rday);
ApplNextTime.Month = 0x13;
}
}
FmuPublic_Watchdog();
}
/***********End*********************************************/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -