并增加一个时间(时分秒)值输入功能,根据新时间调整系统时间,并按照新的系统时间显示数字形式时间。
400C,我去,土豪啊
#include <stdio.h>
#include <graphics.h>
#define PI 3.1416
#include "math.h"
#include "dos.h"
main()
{
int x0 = 320, y0 = 240, r0 = 150;
void init_screen();
void sec();
init_screen(x0, y0, z0);
sec();
closegraph();
}
void init_sreen(int x0, int y0, int z0)
{
int i, x, y, graphdriver, graphmode;
char s[10];
float alpha, a0 = 90;
graphmode = VGAHI; graphdriver = VGA;
initgraph(&graphdriver, &graphmode, "");
cleardevice();
setbkcolor(); setcolor(2);
circle(x0, y0, r0); circle(x0, y0, r0 + 30);
setfillstyle(SOLID_FILL, 10);
floodfill(x0 - r0 - 10, y0, 2);
for (i = 12; i >= 1; i--)
{
alpha = (a0 + 30 * (12 - i)*PI / 180);
x = x0 + cos(alpha)*r0 - 16;
y = y0 - sin(alpha)*r0;
sprintf(s, "%2d", i);
setcolor(4);
settextstyle(0, 0, 2);
outtextxy(x, y, z);
}
for (i = 60; i >= 1; i--)
{
alpha = (a0 + 6 * (60 - i))*PI / 180;
x = x0 + cos(alpha)*(r0 - 20);
y = y0 - sin(alpha)*(r0 - 20);
setcolor(14);
if (i % 5 == 0)
circle(x, y, 5);
else
circle(x, y, 2);
floodfill(x, y, 14);
}
settextstyle(0, 0, 3);
}
void sec(void)
{
int x, y, i, j, k, xj, yj, yk, xk, xi, yi, x0 = 320, y0 = 240, r0 = 150;
unsigned char *shijie = "\n\n\n\n\n\n\n\n\n\n\n\n";
unsigned char *quanqiu = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
struct time tim;
struct date dat;
float alphai, alphaj; alphak, a0 = 90;
xi = x0;
yi = y0;
xj = x0;
yj = y0;
xk = x0;
yk = y0;
do
{
x = 38;
y = 12;
gettime(&tim);
sprintf(shijie, "%02d:%02d:%02d", tim.ti_hour, tim.ti_min, tim.ti_sec);
setfillstyle(SOLID_FILL, 3);
settextstyle(2, 0, 6);
bar(276, 190, 352, 205);
setcolor(WHITE);
outtextxy(278, 190, shijie);
x = 48;
y = 22;
getdate(&dat);
sprintf(quanqiu, "%04d-%02d-%02d", dat.da_year, dat.da_mon, dat.da_day);
setfillstyle(SOLID_FILL, 5);
bar(262, 210, 365, 225);
setcolor(WHITE);
settextstyle(2, 0, 6);
outtextxy(265, 210, quanqiu);
circle(x0, y0, 100);
x = 190;
y = 430;
setcolor(YELLOW);
settextstyle(2, 0, 8);
outtextxy(x, y, "Designed By TKB!");
setlinestyle(0, 0, 3);
k = tim.ti_hour;
j = tim.ti_min;
i = tim.ti_sec;
alphak = (a0 + 30 * (12 - k) - j * 5 / 60 * 6)*PI / 180;
alphaj = (a0 - 6 * j)*PI / 180;
alphai = (a0 + 6 * (60 - i))*PI / 180;
x = x0 + cos(alphai)*(r0 - 25);
y = y0 - sin(alphai)*(r0 - 25);
setcolor(BLACK);
line(x0, y0, xi, yi);
setcolor(LIGHTRED);
line(x0, y0, x, y);
xi = x;
yi = y;
alphaj = (a0 - 6 * j)*PI / 180;
x = x0 + cos(alphaj)*(r0 - 47);
y = y0 - sin(alphaj)*(r0 - 47);
setcolor(BLACK);
line(x0, y0, xj, yj);
setcolor(LIGHTRED);
line(x0, y0, x, y);
xj = x;
yj = y;
alphak = (a0 + 30 * (12 - k) - j * 5 / 60 * 6)*PI / 180;
x = x0 + cos(alphak)*(r0 - 60);
y = y0 - sin(alphak)*(r0 = 60);
setcolor(BLACK);
line(x0, y0, xk, ky);
setcolor(LIGHTRED);
line(x0, y0, x, y);
xk = x;
yk = y;
delay(10000);
} while (!kbhit());
}
outtext不就可以显示么
开个窗口,显示吧
至于时间这东西,读出来,显示就可了
TC 用 gettime.settime 函数读出,写入时间
动态改变,可以用定时器中断处理,也可用循环刷新