电子表代码,用C语言写的,可以显示系统时间和年月日,而且可以改变时间!
来源:互联网 发布:mysql 拆表 编辑:程序博客网 时间:2024/03/29 18:38
/*** 与系统时间严格同步 并且可调时间 的电子表 ( MADE IN 127 ) ***/ /*** ! 在程序运行过程中不要切换窗口,否则,会出错 . ***/ #include<graphics.h> #include<math.h> #include<time.h> #define STEP 6.283183/60 #define PI 3.141592 #define X 307 #define Y 150 /*** 中心坐标 ***/ #define R 100 #define R_OUT (R+4) /*** 内外半径 ***/ #define R_S (R-20) #define R_M (R-35) #define R_H (R-50) /*** 各指针半径 ***/ #define MIN 60 /*** 设定延时 (分钟) ***/ #define C_I 9 int HH=0,MM=0; main() { int gd=DETECT,gm,second,record_s,minite,record_m,hour,i,pc=60; time_t t; float temp; char ch='#'; int int_M=MIN; pc=(MIN-int_M)*60; initgraph (&gd,&gm,""); setbkcolor (0); /*** 外观设计 ***/ circle (X,Y,R); setfillstyle (1,2); floodfill (X,Y,15); circle (X,Y,R_OUT); setfillstyle (1,8); floodfill (X+R_OUT-1,Y,15); rectangle (X-2,Y-R+8-4,X+2,Y-R+8+4); rectangle (X-2,Y+R-8-4,X+2,Y+R-8+4); rectangle (X-R+8-4,Y-2,X-R+8+4,Y+2); rectangle (X+R-8-4,Y-2,X+R-8+4,Y+2); for (i=1;i<=60;i++) if (i!=15&&i!=30&&i!=45&&i!=60) if (i%5!=0) circle (X+(R-10)*cos(i*STEP),Y+(R-10)*sin(i*STEP),1); else circle (X+(R-10)*cos(i*STEP),Y+(R-10)*sin(i*STEP),2); rectangle (X+R_OUT,Y-6,X+R_OUT+6,Y+6); setfillstyle (1,8); floodfill (X+R_OUT+3,Y,15); temp=R_OUT*0.866; line (X-R_OUT/2-5,Y-temp+2,X-R_OUT/2,Y-temp-30); line (X-R_OUT/2+5,Y-temp-2,X-R_OUT/2+5,Y-temp-30); line (X+R_OUT/2-5,Y-temp-2,X+R_OUT/2-5,Y-temp-30); line (X+R_OUT/2+5,Y-temp+2,X+R_OUT/2,Y-temp-30); line (X-R_OUT/2,Y-temp-30,X-R_OUT/2+5,Y-temp-30); line (X+R_OUT/2-5,Y-temp-30,X+R_OUT/2,Y-temp-30); line (X-R_OUT/2+5,Y-temp-25,X+R_OUT/2-5,Y-temp-25); line (X-R_OUT/2+5,Y-temp-22,X+R_OUT/2-5,Y-temp-22); floodfill (X-R_OUT/2-2,Y-temp,15); floodfill (X+R_OUT/2+2,Y-temp,15); floodfill (X,Y-R_OUT-10,15); line (X-R_OUT/2-5,Y+temp-2,X-R_OUT/2,Y+temp+30); line (X-R_OUT/2+5,Y+temp+2,X-R_OUT/2+5,Y+temp+30); line (X+R_OUT/2-5,Y+temp+2,X+R_OUT/2-5,Y+temp+30); line (X+R_OUT/2+5,Y+temp-2,X+R_OUT/2,Y+temp+30); line (X-R_OUT/2,Y+temp+30,X-R_OUT/2+5,Y+temp+30); line (X+R_OUT/2-5,Y+temp+30,X+R_OUT/2,Y+temp+30); line (X-R_OUT/2+5,Y+temp+25,X+R_OUT/2-5,Y+temp+25); line (X-R_OUT/2+5,Y+temp+22,X+R_OUT/2-5,Y+temp+22); floodfill (X-R_OUT/2-2,Y+temp,15); floodfill (X+R_OUT/2+2,Y+temp,15); floodfill (X,Y+R_OUT+10,15); for (i=1;i<=MIN*60+1;i++) /*** 该循环严格一秒一次 ( 捕捉系统时间 ) ***/ { setcolor (15); circle (X,Y,5); circle (X,Y,2); setfillstyle (1,0); floodfill (X,Y,15); settextstyle (2,0,0); setcolor (8); outtextxy (X-13,Y-52,"FIYTA"); outtextxy (X-30,Y+35,"MADE IN 127"); setcolor (2); time (&t); /*** 获取系统时间 ***/ hour=(ctime(&t)[11]-'0')*10+(ctime(&t)[12]-'0'); minite=(ctime(&t)[14]-'0')*10+(ctime(&t)[15]-'0'); second=(ctime(&t)[17]-'0')*10+(ctime(&t)[18]-'0'); if (ch==C_I) { HH=HH-hour; MM=MM-minite; } hour=(hour+HH)%24; minite=(minite+MM)%60; window (22,22,80,22); printf (" The current time is "); if (hour<10) printf ("0"); printf ("%d : ",hour); if (minite<10) printf ("0"); printf ("%d : ",minite); if (second<10) printf ("0"); printf ("%d",second); window (35,20,80,20); printf (" "); if (int_M<10) printf ("0"); printf ("%d : ",int_M); if (pc<10) printf ("0"); printf ("%d ",pc); record_m=minite; hour=10*hour+minite/6-30; minite=2*minite+second/30-30; second-=15; record_s=second; setcolor (0); /*** 写指针 ***/ line (X+7*cos(PI+hour*STEP/2),Y+7*sin(PI+hour*STEP/2),X+R_H*cos(hour*STEP/2),Y+R_H*sin(hour*STEP/2)); setcolor (1); line (X+13*cos(PI+minite*STEP/2),Y+13*sin(PI+minite*STEP/2),X+R_M*cos(minite*STEP/2),Y+R_M*sin(minite*STEP/2)); setcolor (4); line (X+20*cos(PI+second*STEP),Y+20*sin(PI+second*STEP),X+R_S*cos(second*STEP),Y+R_S*sin(second*STEP)); record_s=second; ch='#'; while (second==record_s) /*** 此循环用来 " 监视 " 系统秒针的变化 ***/ { time (&t); second=(ctime(&t)[17]-'0')*10+(ctime(&t)[18]-'0')-15; if (bioskey(1)&&(ch=getch()())==C_I||ch==27) { if (ch==27) { closegraph (); exit (0); } window (22,22,80,22); printf (" PLS enter the time : "); window (48,22,80,22); while (!bioskey(1)) { printf ("00:00 \b\b\b\b\b\b\b\b"); delay (25000); printf (" \b\b\b\b\b\b\b\b"); delay (25000); } scanf ("%d:%d:%d",&HH,&MM); if (HH<=23&&HH>=0&&MM>=0&&MM<=59) break; else { ch='#'; HH=0; MM=0; } } } setcolor (2); /*** 覆盖指针 ( 由秒控制 ) ***/ if ((record_m*60+60+second+15)%360==0||ch==C_I) line (X+7*cos(PI+hour*STEP/2),Y+7*sin(PI+hour*STEP/2),X+R_H*cos(hour*STEP/2),Y+R_H*sin(hour*STEP/2)); if ((second+15)%30==0||ch==C_I) line (X+13*cos(PI+minite*STEP/2),Y+13*sin(PI+minite*STEP/2),X+R_M*cos(minite*STEP/2),Y+R_M*sin(minite*STEP/2)); if (i!=60*MIN+1||ch==C_I) line (X+20*cos(PI+record_s*STEP),Y+20*sin(PI+record_s*STEP),X+R_S*cos(record_s*STEP),Y+R_S*sin(record_s*STEP)); if (pc==0&&int_M!=0) pc=60; pc--; if (pc==59) int_M--; } window (20,22,80,22); printf (" The watch time out! Press any key ... "); getch() (); closegraph (); }
0 0
- 电子表代码,用C语言写的,可以显示系统时间和年月日,而且可以改变时间!
- 自己写的jquery组件,本地显示系统时间,可以随时更改时间
- 时间可以改变一切
- C语言时钟源程序(既能按机械表行走,又能按电子表显示时间和日期)
- 一个电子表 有时间 温度 闹钟 可以用上位机改变下位机的闹钟 温度报警上下限 采用模块
- javascript显示年月日时间代码
- javascript显示年月日时间代码
- javascript显示年月日时间代码
- JS 实现几秒跳转的代码可以显示时间
- Linux下C语言编程——几种可以获取系统时间的函数
- c语言显示系统时间
- 使用Jquery动态显示年月日星期时间的代码段
- [Java] Tread.sleep() 电子表显示时期和时间
- Time 类可以实现调整和重新设置,显示时间,将两个时间相加的功能
- 汇编 实时显示系统时间 年月日信息
- 实时显示系统时间和改变时间格式进行计算
- C/C++代码获取当前时间的:年月日时分秒
- 用"button"的"onMouseMove事件"和"onMouseOut时间"可以控制样式!代码如下:
- 分享一个自己写的JFinal的BaseController (2)
- 谈谈我对ASIHttpRequest库使用
- CTreeCtrl添加图标几种方法
- Performance Measures and Evaluation on IR System
- 苹果App Store审核指南中文翻译(更新)
- 电子表代码,用C语言写的,可以显示系统时间和年月日,而且可以改变时间!
- 计算某天是星期几的方法
- hdu 2546 饭卡(01背包变形)
- git windows中文 乱码问题解决汇总
- servlet生命周期和并发
- C++编程规范之48:在构造函数中使用初始化代替赋值
- 关于VC预定义常量_WIN32,WIN32,_WIN64
- 策略模式&模板模式
- javascript引擎 PK: V8 vs Spidermonkey