📄 worldclock.txt
字号:
//时间格式的转换
Temp_hour_1[0]=strtime[0];
Temp_hour_2[0]=strtime[1];
hour_l=Unicode2Int(Temp_hour 1);
hour_2=Unicode2Int(Temp hour_2);
Temp_minute_l[0]=strtime[3];
Temp_minute_2[0]=strtime[4];
minute_l=Unicode2Int(Temp_minute_1);
minute_2=Unicode2Int(Temp_minute_2);
k=(hour_l*10+hour_2)*60+minute_l*10+minute_2;
switch(J)
//根据选择,进行不同的计算
{
case 1://北京
ShowBmp(pdc,BeiJing,120,120);
break;
case 2://纽约
ShowBmp(pdc,Newyork,120,120);
k=k-780;//去掉时间差
if(k<0)
{k=k+1440;}
else if(k>=1440 )
{k=k-1440;}
//分别取出小时、分的第1、2位
hour_l=(k/60)/10;
hour_2=(k/60)%10;
minute_l=(k%60)/10;
minute_2=(k%60)%10;
//格式转换
Int2Unicode(hour_l,Tenp hour_unicodel);
Int2Unicode(hour_2,Temp_hour_unicode2);
strtime[0]=Temp_hour_unicodel[0];
strtime[1]=Temp_hour_unicode2[0];
Int2Unicode(minute_l,Temp_minute_unicodel);
Int2Unicode(minute_2,Temp_minute_unicode2);
strtime[3]=Temp_minute_unicodel[0];
strtime[4]=Temp_minute_unicode2[0];
break;
case 3://德黑兰
ShowBmp(pdc,Tehela,120,120);
k=k-270;
if(k<0)
{k=k+1440;}
else if(k>=1440)
{k=k-1440;}
hour_l=(k/60)/10;//分别取出小时、分的第1、2位
hour_2=(k/60)%10;
minute_l=(k%60)/10;
minute_2=(k%60)%10;
//格式转换
Int2Unicode(hour_l,Temp_hour_unicode1);
Int2Unicode(hour_2,Temp_hour_unicode2);
strtime[0]=Temp_hour_unicodel[0];
strtime[1]=Temp_hour_unicode2[0];
Int2Unicode(minute_l,Temp_minute_unicodel);
Int2Unicode(minute_2,Temp_minute_unicode2);
strtime[3]=Temp_minute_unicodel[0];
strtime[4]=Temp_minute_unicode2[0];
break;
case 4://巴黎
ShowBmp(pdc,Paris,120,120);
k=k-420;
if(k<0)
{k=k+1440;}
else if (k>=1440)
{k=k-1440;}
hour_1=(k/60)/10;//分别取出小时、分的第l、2位
hour_2=(k/60)%10;
minute l=(k%60)/10;
minute_2=(k%60)%10;
//格式转换
Int2Unicode(hour_l,Temp_hour_unicodel);
Int2Unicode(hour 2,Temp_hour_unicode2);
strtime[0]=Temp_hour_unicodel[0];
strtime[1]=Temp_hour_unicode2[0];
Int2Unicode(minute_l,Temp_minute_unicodel);
Int2Unicode(minute_2,Temp_minute_unicode2);
strtime[3]=Temp minute unicodel[0];
strtime[4]=Temp minute unicode2[0];
break;
case 5://东京
ShowBmp(pdc,Tokyo,120,120);
k=k+60;
if(k<0)
{k=k+1440;}
else if (k>=1440)
{k=k-1440;}
hour-1=(k/60)/10;//分别取出小时、分的第1、2位
hour_2=(k/60)%10;
minute_l=(k%60)/10;
minute_2=(k%60)%10;
//格式转换
Int2Unicode(hour_l,Temp_hour_unicodel);
Int2Unicode(hour_2,Ternp_hour_unicode2);
strtime[0]=Temp_hour_unicodel[0];
strtime[1]=Temp_hour_unicode2[0];
Int2Unicode(minute_l,Temp_minute_unicodel);
Int2Unicode(minute_2,Temp_minute_unicode2);
strtime[3]=Temp_minute_unicodel[0];
strtime[4]=Temp_minute_unicode2[0];
break;
}
ShowBmp(pdc,Nju,122,190);
SetTextCtrlText(pTextCtrl,strtime,TRUE);//设置文本框内容
OSSemPost(Rtc_Updata_Sem); //发送信号量
switch(J){
case 1://北京
//显示秒针
Rtc_Format("%H%I%s",strtime); //格式化时间
clock=Unicode2Int(strtime);
hour=clock/10000;
minute=(clock%10000)/100;
second=(clock%10000)%100;
//计算秒针的角度
i=(double)second/60.0*2*pi;
xl=(int)(200+50*sin(i));
yl=(int)(60-50*cos(i));
MoveTo(pdc,200,60);
SetPenColor(pdc,0);
SetPenWidth(pdc,1);
LineTo(pdc,xl,y1);
//显示分针
//计算分针的角度
i=(double)((second/60.0+minute)/60.0*2*pi);
xl=(int)(200+40*sin(i));
yl=(int)(60-40*cos(i));
//uart-printf("mini=%f minx=%d miny=%d\n",i,xl,y1);
MoveTo(pdc,200,60);
SetPenColor(pdc,0);
SetPenWidth(pdc,2);
LineTo(pdc,xl,y1);
//显示时针
k=hour;
if(k>=12)
{k=k-12;}
hour_l=k/10;
hour_2=k%10;}
//计算时针的角度
i=(double)((second/3600.0+minute/60.0+k)/12.0*2*pi);
xl=(int)(200+30*sin(i));
y1=(int)(60-30*cos(i));
NoveTo(pdc,200,60);
SetpenColor(pdc,0);
SetPenWidth(pdc,3);
LineTo(pdc,xl,y1);
break;
case 2://纽约
//显示秒针
Rtc_Format("%H%I%s",strtime);//格式化时间
clock=unicode2Int(strtime);
hour=clock/10000-13;
if(hour<0)
hour=hour+24:
minute=(clock%10000)/100;
second=(clock%10000)%100;
i=(double)second/60.0*2*pi;
xl=(int)(200+50*sin(i));
yl=(int)(60-50*cos(i));
MoveTo(pdc,200,60);
SetPenColor(pdc,0);
SetPenWidth(pdc,1);
LineTo(pdc,xl,y1);
//显示分针
i=(double)((second/60.0+minute)/60.0*2*pi);
x1=(int)(200+40*sin(i));
y1=(int)(60-40*cos(i));
MoveTo(pdc,200,60);
SetpenColor(pdc,0);
SetPenWidth(pdc,2);
LineTo(pdc,xl,y1);
//显示时针
k=hour;
if(k>=12)
k=k-12;
hour_i=k/10;
hour_2=k%10;
}
i=(double)((second/3600.0+minute/60.0+k)/12.0*2*pi);
xl=(int)(200+30*sin(i));//计算终点位置
yl=(int)(60-30*cos(i));
MoveTo(pdc,200,60);
SetPenColor(pdc,0); //笔的颜色
SetPenWidth(pdc,3); //笔的宽度
LineTo(pdc,xl,y1); //连线
break;
case 3://德黑兰
//显示秒针
Rtc_Format("%H%I%s",strtime); //格式化时间
Clock=Unicode2Int(strtime);
hour=clock/10000;
minute=(clock%10000)/100;
second=(clock%10000)%100;
clock=hour*60+minute;
clock=clock-270;
if(clock<0)
clock=clock+1440;
hour=clock/60;
minute=clock%60;
i=(double)second/60.0*2*Pi;
xl=(int)(200+50*sin(i));
yl=(int)(60-50*COS(i));
MoveTo(pdc,2 00,60);
SetPenColor(pdc,0);
SetPenWidth(pdc,1);
LineTo(pdc,xl,y1);
//显示分针
i=(double)((second/60.0+minute)/60.0*2*pi);
xl=(int)(200+40*sin(i));
yl=(int)(60-40*COS(i));
MoveTo(pdc,200,60);
SetPenColor(pdc,0);
SetPenWidth(pdc,2);
LineTo(pdc,xl,y1);
//显示时针
k=hour;
if (k>=12)
{
k=k-12;
hour_l=k/10;
hour_2=k%10;
}
i=(double)((second/3600.0+minute/60.0+k)/12.0*2*pi);
xl=(int)(200+30*sin(i)); //计算终点位置
yl=(int)(60-30*COS(i));
MoveTo(pdc,200,60);
SetPenCelor(pdc,0); //笔的颜色
SetPenWidth(pdc,3); //笔的宽度
LineTo(pdc,xl,y1); //连线;
break;
case 4://巴黎
//显示秒针
Rtc_Format("%H%I%s",strtime); //格式化时间
clock=Unicode2Int(strtime);
hour=clock/10000-7;
if(hour<0)
hour=hour+24;
minute=(Clock%10000)/100;
second=(Clock%10000)%100;
i=(double)(second/60.0*2*pi);
xl=(int)(200+50*Sin(i));
yl=(int)(60-50*COS(i));
MoveTo(pdc,200,60);
SetPenColor(pdc,0);
SetPenWidth(pdc,1);
LineTo(pdc,xl,y1);
//显示分针
i=(double)((second/60.0+minute)/60.0*2*pi);
xl=(int)(200+40*Sin(i));
yl=(int)(60-40*COS(i));
MoveTo(pdc,200,60);
SetPenColor(pdc,0);
SetPenWidth(pdc,2);
LineTo(pdc,xl,y1);
//显示时针
k=hour;
if (k>=12)
{
k=k-12;
hour_l=k/10 ;
hour_2=k%10;
}
i=(double)((second/3600.0+minute/60.0+k)/12.0*2*pi);
xl=(int)(200+30*sin(i)); //计算终点位置
yl=(int)(60-30*COS(i));
MoveTo(pdc,200,60);
SetPenColor(pdc,0); //笔的颜色
SetPenWidth(pdc,3); //笔的宽度
LineTe(pdc,xl,y1); //连线
break;
case 5://东京
//显示秒针
Rtc_Format("%H%I%s",strtime); //格式化时间
clock=unicode2Int(strtime);
hour=clock/10000+1;
if(hour>1440)
hour=hour-24;
minute=(clock%10000)/100;
second=(clock%10000)%100;
i=(double)second/60.0*2*pi;
xl=(int)(200+30*sin(i)); //计算终点位置
yl=(int)(60-30*COS(i));
MoveTo(pdc,200,60);
SetPenColor(pdc,0); //笔的颜色
SetPenWidth(pdc,3); //笔的宽度
LineTo(pdc,xl,y1); //连线
//显示分针
i=(double)((second/60.0+minute)/60.0*2*pi);
xl=(int)(200+40*sin(i));
yl=(int)(60-40*cos(i));
MoveTo(pdc,200,60);
SetPenColOr(pdc,0);
SetPenWidth(pdc,2);
LineTo(pdc,xl,y1);
//显示时针
if(k>=12)
k=k-12;
hour_l=k/10;
hour_2=k%10;
//计算时针的角度
i=(double)((second/3600.0+minute/60.0+k)/12.0*2*pi);
xl=(int)(200+30*sin(i)); //计算终点位置
yl=(int)(60-30*COS(i));
MoveTo(pdc,200,60);
SetPenColor(pdc,0); //笔的颜色
SetPenWidth(pdc,3); //笔的宽度
LineTo(pdc,xl,y1); //连线
break/
}
OSTimeDly(250);
MoveTo(pdc,0,0);
//进行刷新
FitIRect(pdc,140,5,250,110,GRAPH_MODE_NORMAL,RGB(255,255,255));
EXIO_8255A_PORTA=led[1istnumber]; //显示所选城市
EXIO_8255A_PORTB=0x77;
}//endif
DestoryDC(pdc);}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -