c语言中的时钟问题
直接用tm 结构 方便。
程序重写如下:
#include
#include
void wait ( int seconds )
{
clock_t endwait;
endwait = clock () + seconds * CLOCKS_PER_SEC ;
while (clock() < endwait) {}
}
int main ()
{
time_t rt;
struct tm *t;
long int i;
for (i=0;i<3600;i++)
{
time ( &rt );
t = localtime ( &rt );
system("cls");printf("
");
printf ( "Year: %d ", t->tm_year+1900 );
printf ( "Month: %d ", t->tm_mon +1 );
printf ( "day: %d ", t->tm_mday);
printf ( "hour: %d ", t->tm_hour);
printf ( "minute: %d ", t->tm_min);
printf ( "second: %d
", t->tm_sec);
wait (1);
}
return 0;
}
你可以把英文年月日时分秒改中文字。
for 循环改无限循环。
本程序不修改系统时间。
别急着提问啊,先搜索下别人类似的问题.
缺少#include "graphics.h"
int graphdriver,graphdriver=DETECT;这句改成int graphmode,graphdriver=DETECT;
#include"graphics.h"
#include"math.h"
#include"time.h"
#include"dos.h"
int point_sec,point_min,point_hour;
int x,y,z;
int array_sec[60][2];
int array_min[60][2];
int array_hour[60][2];
int a[60][2];
void zhongmian()
{
int n,m,p;
x=320;
y=240;
z=140;
point_sec=132;
point_min=110;
point_hour=90;
setfillstyle(1,2);
setlinestyle(0,0,3);
ellipse(x,y,0,180,220,150);
setlinestyle(0,0,3);
ellipse(x,y,180,360,220,150);
ellipse(x,y,90,270,210,150);
ellipse(x,y,90,270,200,150);
ellipse(x,y,90,270,190,150);
ellipse(x,y,90,270,180,150);
ellipse(x,y,90,270,170,150);
ellipse(x,y,90,270,160,150);
ellipse(x,y,90,270,150,150);
ellipse(x,y,270,90,150,150);
ellipse(x,y,270,90,160,150);
ellipse(x,y,270,90,170,150);
ellipse(x,y,270,90,180,150);
ellipse(x,y,270,90,190,150);
ellipse(x,y,270,90,200,150);
ellipse(x,y,270,90,210,150);
setcolor(3);
ellipse(x,80,25,155,72,72);
ellipse(x,80,40,140,55,55);
setcolor(RED);
circle(x,y,148);
floodfill(165,240,RED);
floodfill(145,240,RED);
floodfill(125,240,RED);
floodfill(105,240,RED);
floodfill(475,240,RED);
floodfill(495,240,RED);
floodfill(515,240,RED);
floodfill(535,240,RED);
setlinestyle(0,0,3);
line(135,320,90,420);
line(505,320,550,420);
line(90,420,550,420);
arc(x,y,26,154,200);
setcolor(YELLOW);
arc(x,y,32,147,192);
setcolor(YELLOW);
setfillstyle(1,1);
floodfill(250,400,RED);
putpixel(320,100,YELLOW);
fillellipse(320,100,5,5);
putpixel(390,119,YELLOW);
fillellipse(390,119,5,5);
putpixel(441,170,YELLOW);
fillellipse(441,170,5,5);
putpixel(460,240,YELLOW);
fillellipse(460,240,5,5);
putpixel(441,310,YELLOW);
fillellipse(441,310,5,5);
putpixel(390,361,YELLOW);
fillellipse(390,361,5,5);
putpixel(320,380,YELLOW);
fillellipse(320,380,5,5);
putpixel(250,361,YELLOW);
fillellipse(250,361,5,5);;
putpixel(199,310,YELLOW);
fillellipse(199,310,5,5);
putpixel(180,240,YELLOW);
fillellipse(180,240,5,5);;
putpixel(199,170,YELLOW);
fillellipse(199,170,5,5);;
putpixel(250,119,YELLOW);
fillellipse(250,119,5,5);;
for(p=6,n=0,m=0;n<15;p=p+6,n++,m++){
a[m][0]=(int)(x+z*sin(2*3.14*p/360));
a[m][1]=(int)(y-z*cos(2*3.14*p/360));
array_sec[m][0]=(int)(x+point_sec*sin(2*3.14*p/360));
array_sec[m][1]=(int)(y-point_sec*cos(2*3.14*p/360));
array_min[m][0]=(int)(x+point_min*sin(2*3.14*p/360));
array_min[m][1]=(int)(y-point_min*cos(2*3.14*p/360));
array_hour[m][0]=(int)(x+point_hour*sin(2*3.14*p/360));
array_hour[m][1]=(int)(y-point_hour*cos(2*3.14*p/360));
}
for(p=6,n=0;n<15;p=p+6,n++,m++){
a[m][0]=(int)(x+z*cos(2*3.14*p/360));
a[m][1]=(int)(y+z*sin(2*3.14*p/360));
array_sec[m][0]=(int)(x+point_sec*cos(2*3.14*p/360));
array_sec[m][1]=(int)(y+point_sec*sin(2*3.14*p/360));
array_min[m][0]=(int)(x+point_min*cos(2*3.14*p/360));
array_min[m][1]=(int)(y+point_min*sin(2*3.14*p/360));
array_hour[m][0]=(int)(x+point_hour*cos(2*3.14*p/360));
array_hour[m][1]=(int)(y+point_hour*sin(2*3.14*p/360));
}
for(p=6,n=0;n<15;p=p+6,n++,m++){
a[m][0]=(int)(x-z*sin(2*3.14*p/360));
a[m][1]=(int)(y+z*cos(2*3.14*p/360));
array_sec[m][0]=(int)(x-point_sec*sin(2*3.14*p/360));
array_sec[m][1]=(int)(y+point_sec*cos(2*3.14*p/360));
array_min[m][0]=(int)(x-point_min*sin(2*3.14*p/360));
array_min[m][1]=(int)(y+point_min*cos(2*3.14*p/360));
array_hour[m][0]=(int)(x-point_hour*sin(2*3.14*p/360));
array_hour[m][1]=(int)(y+point_hour*cos(2*3.14*p/360));
}
for(p=6,n=0;n<15;p=p+6,n++,m++){
a[m][0]=(int)(x-z*cos(2*3.14*p/360));
a[m][1]=(int)(y-z*sin(2*3.14*p/360));
array_sec[m][0]=(int)(x-point_sec*cos(2*3.14*p/360));
array_sec[m][1]=(int)(y-point_sec*sin(2*3.14*p/360));
array_min[m][0]=(int)(x-point_min*cos(2*3.14*p/360));
array_min[m][1]=(int)(y-point_min*sin(2*3.14*p/360));
array_hour[m][0]=(int)(x-point_hour*cos(2*3.14*p/360));
array_hour[m][1]=(int)(y-point_hour*sin(2*3.14*p/360));
}
for(n=0;n<60;n++)
putpixel(a[n][0],a[n][1],YELLOW);
}
void zhuandong()
{
struct tm * p;
time_t l;
int n,m,i,q,b,c,sec,min,hour;
n=61;
m=61;
i=61;
b=0;
c=0;
while(1){
l=time(NULL);
p=localtime(&l);
sec=p->tm_sec;
min=p->tm_min;
hour=p->tm_hour;
gotoxy(29,12);
if(n==sec){
setcolor(0);
setlinestyle(0,0,1);
line(x,y,array_sec[(sec+58)%60][0],array_sec[(sec+58)%60][1]);
setlinestyle(0,0,2);
line(x,y,array_min[(min+58)%60][0],array_min[(min+58)%60][1]);
setlinestyle(0,0,3);
line(x,y,array_hour[(hour%12*5+min/12+58)%60][0],array_hour[(hour%12*5+min/12+58)%60][1]);
setcolor(YELLOW);
setlinestyle(0,0,3);
line(x,y,array_hour[(hour%12*5+min/12+59)%60][0],array_hour[(hour%12*5+min/12+59)%60][1]);
setlinestyle(0,0,2);
line(x,y,array_min[(min+59)%60][0],array_min[(min+59)%60][1]);
printf("%s",asctime(p));
sound(50);
delay(100);
nosound();
setcolor(YELLOW);
setlinestyle(0,0,1);
line(320,240,array_sec[(sec+59)%60][0],array_sec[(sec+59)%60][1]);
}
n=sec+1;
if(n==60)n=0;
if(b==0)
{m=min;b=1;}
if(min==m){
setcolor(0);
setcolor(YELLOW);
setlinestyle(0,0,3);
line(x,y,array_hour[(hour%12*5+min/12+59)%60][0],array_hour[(hour%12*5+min/12+59)%60][1]);
setlinestyle(0,0,2);
line(x,y,array_min[(min+59)%60][0],array_min[(min+59)%60][1]);
}
m=min+1;
if(m==60)m=0;
if(c==0)
{i=min;c=1;}
if(i==min){
setcolor(0);
setcolor(YELLOW);
setlinestyle(0,0,3);
line(x,y,array_hour[(hour%12*5+min/12+59)%60][0],array_hour[(hour%12*5+min/12+59)%60][1]);
}
i=min+1;
if(i==60)i=0;
if(kbhit())exit(1);
}
}
main()
{
int gdriver,mode;
gdriver=VGA;
mode=VGAHI;
registerbgidriver(EGAVGA_driver);
initgraph(&gdriver,&mode,"");
setbkcolor(0);
setcolor(RED);
zhongmian();
zhuandong();
closegraph();
}
E语言程序时钟问题速度来啊
一个编辑框,一个时钟 首先设置启动窗口 时钟1.时钟周期 = 1000 周期事件为 编辑框1.内容 = 到文本 (取现行时间 ())如果要专门取分,秒 就用编 辑框1.内容 = 到文本 (取分钟 (取现行时间 ()))
c语言时钟如何能使到60秒是进1分钟,秒的十分位显示的是0而不是6。分...
这不是很简单吗?用if判断,如果=60,则秒为0,分加加,如果分=60,分=0,时加加,如果时=24,时=0不就OK了。有什么不明白的可以再问。
易语言 问题。 有一个按钮,一个标签,一个时钟, 当点击按钮,没过1分 ...
双击按钮写代码:时钟1.时钟周期=60000 然后双击时钟写代码:标签1.标题=到文本(到数值(标签1.标题)+1)
易语言关于时钟周期不执行的问题
上面两步已经执行了,否则不会停的。你把x3的值赋给了xx3,所以这两个值是相等的。后面再判断是否相等,当然执行为真,时钟就停了。这是你的程序流程设计错误。
易语言!关于那个时钟的!T=#显示时间 怎么不对!
看一下你的数据类型,错误提示已经很清楚了,你的变量赋值类型不对,我从图上看不出你的变量定义,这样给你说把,比如 变量1 文本型 变量2 整数型 那么:变量1=变量2 这样就会出现错误10044 编辑框1.内容=1+4 也会出现这样错误,因为编辑框是文本型 1+4 是双精度小数 ...
用易语言怎样编时钟?
很简单的,,在窗口放一个 时钟组件和标签组件, 把时钟的时钟周期属性设置为1000。(1000=1秒 以此类推),然后双击时钟组件,在时钟的时钟周期写代码:标签1.标题 = 到文本 (取年份 (取现行时间 ())) + “-” + 到文本 (取月份 (取现行时间 ())) + “-” + 到文本 (取日 (取...
易语言时钟循环问题
.版本 2 .子程序 _选择框1_被单击 .如果 (选择框1.选中)时钟1.时钟周期 = 3000 .否则 时钟1.时钟周期 = 0 .版本 2 .子程序 _时钟1_周期事件 运行 (“1.exe”, 假, )
C语言写的时钟程序,可是运行了之后不会动一直是0,求大神看看哪里错了...
void Update(CLOCK myclock)改为void Update(CLOCK &myclock)传的是引用不是形参,否则不会改变myclock的值
易语言时钟的定义
是马上执行,再过3秒(也就是3000毫秒)在执行,以此类推………
易语言的循环与时钟的区别?
三、这点很多人都不知道:程序开始执行时,遇到循环代码,立即执行;遇到时钟的周期设置,先等完这个周期,才开始运行时钟周期事件里面的代码。例如:代码中出现 “时钟1.时钟周期=5000”,那个程序会先等完5秒钟,才开始运行时钟周期事件里面的代码。 ———还有问题联系丶454丶203丶077 ...
田宁裕尔: #include"stdio.h" #include"graphics.h" #include"math.h" #include"time.h" #include"dos.h"int point_sec,point_min,point_hour; int x,y,z; int array_sec[60][2]; int array_min[60][2]; int array_hour[60][2]; int a[60][2];void zhongmian() {int n...
东海县19446377354: C语言编程问题,做一个控制台时钟.代码是怎么写的? - ?
田宁裕尔: #include <stdio.h>#include <windows.h> int main() { int n; for(i=120;i>=0;i--) { printf("\r%02d:%02d",i/60,i%60); Sleep(1000); } return 0; }
东海县19446377354: C语言时钟夹角问题,求正解__ - ?
田宁裕尔: #include<stdio.h> int main() { int h, m, s; int i, j, n; double a, b, c; // 这里!! scanf("%d",&n); for(i = 0; i < n; i++) { scanf("%d%d%d", &h, &m, &s); h %= 12; a = 30 * h + m * 0.5 + s / 120.0; b = 6 * m + 0.1 * s; c = fabs(a - b); if(c > 180) c = 360 - c; for (j = 0; j <= c; j++); printf("%d\n", j - 1); } return 0; }
东海县19446377354: c语言计算时钟夹角问题 - ?
田宁裕尔: 程序可以计算0:00~23:59之间的任意时刻两针之间的夹角. #include <stdio.h> #include <math.h> int main() {int m,h; float a,a1,a2; scanf("%d%d",&h,&m); a1=h%12*30+0.5*m; //时针每走1小时是30度,1分钟走0.5度 a2=6*m; //分针每走1分钟是6度 a=fabs(a1-a2); //夹角为二者之差的绝对值 printf("At %d:%d the angle is %.1f degrees.\n",h,m,a); return 0; }
东海县19446377354: 单片机c语言时钟程序 - ?
田宁裕尔: 试试这个: void time0_int(void) interrupt 1 {TH0 = (65536-10000) / 256;TL0 = (65536-10000) % 256;i++;if (i == 1) {P1_1 = !P1_1; i = 0;dispa[0]++;if (dispa[0] > 9) {P1_1 = !P1_1; dispa[0] = 0;dispa[1]++;if (dispa[1] > 5) {P1_1 = !P1_1; ...
东海县19446377354: c语言 时钟夹角问题 - ?
田宁裕尔: #include"stdio.h" #include"math.h" int main(){ int x,y;float z,w;scanf("%d %d",&x,&y);if(x!=12)z=5.5*y-30*x;if(x==12)z=5.5*y;if(z>=0)w=z;if(z<0)w=0-z;if(y<10)printf("At %d:0%d the angle is %.1f degrees.\n",x,y,w);if(y>=10)printf("At %d:%d the angle is %.1f degrees.\n",x,y,w);}
东海县19446377354: 单片机C语言显示时钟程序的问题?
田宁裕尔: 你的程序在26秒时候清零应该是程序在这个时候跑飞了,导致看门口复位了.有几处可以考虑一下,一是显示函数,看看能不能把时间调短点.有可能是执行显示函数时间过长,看门狗来不及喂狗了.如果显示函数不好调的话找到看门狗函数,把喂狗间隔加大.还有一点,尽量让定时器执行中断的那个间隔加大,否则有可能函数还没执行完下次中断有来了.
东海县19446377354: C语言的一个问题,下面是一个时钟程序. - ?
田宁裕尔: 你这个代码没有问题的啊.可以编译通过.不过看你编译出的问题好像是main()函数有重定义的问题.解决方法:重建一个c++ 文件.把代码复制过去.再重现编译.应该就没有问题了.
东海县19446377354: 请问c语言里面的系统时钟是哪个函数来着? - ?
田宁裕尔: GetLocalTime、GetTickCount.这个函数的用法你可以去网上搜搜“C语言也能干大事”,有专门的视频讲座介绍.
东海县19446377354: C语言编写时钟程序,,急急急急急急!!!! - ?
田宁裕尔: 刚做好一个,功能比较简单(年,月,日,时,分,秒).喜欢的拿去用: #include "stdio.h" #include "time.h" #include "dos.h" #include "windows.h" #include "string.h" #include "ctype.h" int year_r(); //显示年 int month_h()...