您的位置:

c语言做时间表,c语言如何定义时间

本文目录一览:

如何用c语言做个日历表

1、功能要求 :

1)输入任一年将显示出该年的所有月份日期,对应的星期

2)注意闰年情况

其显示格式要求如下:

1)份:中文英文都可以,

2)下一行显示星期,从周日到周六,中英文都可以

3)下一行开始显示日期从1号开始,并按其是周几实际情况与上面的星期数垂直对齐

2、例程:

#include stdio.h 

#includeconio.h 

#includestdlib.h 

int IsLeapYear(int);    //声明头文件和函数

void main() 

int i; 

int day; 

int year; 

int temp; 

int temp_i; 

long int Year_days = 0; 

int Year_Start = 1; 

int Per_Year_Days; 

int month_day[]={31,28,31,30,31,30,31,31,30,31,30,31,29}; //每个月的天数,最后一个是闰年2月

printf("Please enter the year: "); 

scanf("%d",year);                    //输入年份

while(Year_Start  year)             //计算从公元1年1月1日到你所查询年份前一年的天数,是为了以后确定这一年的第一天是星期几

if( IsLeapYear( Year_Start ) )      //确定一年的天数,闰年为366天,一般为365天

Per_Year_Days = 366; 

else 

Per_Year_Days = 365; 

Year_days = Year_days + Per_Year_Days; 

Year_Start++; 

for( temp = 1; temp =12; temp++ )    //循环输出每个月的日历

switch( temp ) 

case 1: 

printf(" January(%d)\n",year);       //如 January(2008)

break; 

case 2: 

printf(" February(%d)\n",year); 

break; 

case 3: 

printf(" March(%d)\n",year); 

break; 

case 4: 

printf(" April(%d)\n",year); 

break; 

case 5: 

printf(" May(%d)\n",year); 

break; 

case 6: 

printf(" June(%d)\n",year); 

break; 

case 7: 

printf(" July(%d)\n",year); 

break; 

case 8: 

printf(" August(%d)\n",year); 

break; 

case 9: 

printf(" September(%d)\n",year); 

break; 

case 10: 

printf(" October(%d)\n",year); 

break; 

case 11: 

printf(" November(%d)\n",year); 

break; 

case 12: 

printf(" December(%d)\n",year); 

break; 

i = Year_days % 7;                                //计算这个月第一天是星期几

printf("Mon Tue Wed Thu Fri Sat Sun\n"); 

if( i != 0 ) 

for( temp_i = 0; temp_i  i; temp_i++)        //第一天不是星期一,在前面补空格,本来的空格少了,我加了两个

printf("    "); 

day = 1; 

if( IsLeapYear(year)  temp == 2)          //闰年的2月

while( day = month_day[12] ) 

if( day 1 )                  

if( Year_days % 7 == 0 )      //如果不是1号且昨天是星期天,输入回车, 换行 

printf("\n"); 

if( day = 10 )               //如果大于或等于10号则输出日期并加2个空格,小于10号输出日期并加3个空格

printf("%d  ",day);            //开始没想到这几行是干嘛用的,只要一个输出就好嘛,后来才想到是用来调整格式的

 

else                           //只是他并没有调整好,我做了下修改,现在很整齐了

printf("%d   ",day); 

Year_days++; 

day++; 

else                                     //不是闰年2月的

while (day = month_day[temp-1])    //输出,同上

if( day  1 ) 

if( Year_days % 7 == 0 ) 

printf("\n"); 

if( day =10 )                     //理由同上

printf("%d  ",day); 

else 

printf("%d   ",day); 

Year_days++; 

day++; 

printf("\n"); 

if( getch() == 'q' )             //输入q退出程序

exit(0); 

getch();                         

int IsLeapYear( int year )      //判断是否为闰年

if ((year %4 == 0)  (year % 100 != 0) ||     //年份能被4整除且不能被100整除 或者 能被400整除的为闰年

(year % 400 == 0) ) 

return 1; 

else 

return 0; 

}

怎么用C语言编程数字时钟

1、以下例程实现时钟的实时显示基本要求: 1) 自行设计界面,模拟表盘式时钟。要求界面美观,清晰。2)数字同步显示时间信息。

2、例程:

#includegraphics.h 

#includemath.h 

#includedos.h 

#define PI 3.1415926 

//屏幕中心的坐标(640X480模式下)

#define mid_x 320 

#define mid_y 240 

int main() 

{ int graphdriver=DETECT,graphmode; 

int end_x,end_y; 

struct time curtime; 

float th_hour,th_min,th_sec; 

initgraph(graphdriver,graphmode,"C:\\TC2"); //初始化VGA屏幕模式

setbkcolor(BLACK); //使用黑色的背景色

while(!kbhit(0)) //若有键盘输入,则跳出,即是结束程序

{ setcolor(GREEN); //把画笔设为绿色

circle(mid_x,mid_y,180); //钟的外圆

circle(mid_x,mid_y,150); //钟的内圆

circle(mid_x,mid_y,1); //画出钟的圆心

gettime(curtime); //取得系统当前时间

th_sec=(float)curtime.ti_sec*0.1047197551; //把秒针的角度化为弧度,为以后绘制时方便,下同

th_min=(float)curtime.ti_min*0.1047197551+th_sec/60.0; //分针的弧度

th_hour=(float)curtime.ti_hour*0.5235987755+th_min/12.0; //时度的弧度,注意整时是12等分的,所时乘的是3.14/180*5

//计算出时针的尾的坐标(时针长70)

end_x=mid_x+70*sin(th_hour); 

end_y=mid_y-70*cos(th_hour); 

setcolor(RED); 

line(mid_x,mid_y,end_x,end_y); //用红色线画出时针

//计算出分针坐标(分针长110)

end_x=mid_x+110*sin(th_min); 

end_y=mid_y-110*cos(th_min); 

setcolor(RED); 

line(mid_x,mid_y,end_x,end_y); //用红色画出分针

end_x=mid_x+140*sin(th_sec); 

end_y=mid_y-140*cos(th_sec); 

setcolor(RED); 

line(mid_x,mid_y,end_x,end_y); //同上,画出秒针,长为140

//画出钟盘上的刻度,刻度长20

line(140,240,160,240); //9点对应的大刻度

line(320,60,320,80); //12点对应的大刻度

line(500,240,480,240); //3点的刻度

line(320,420,320,400); //6点的刻度

line(410,395.7,400,378.4); //5点

line(475.7,330,458.4,320); //4点

line(475.7,150,458.4,160); //2点

line(410,84.3,400,101.6); //1点

line(230,84.3,240,101.6); //11点

line(164.3,150,181.6,160); //10点

line(164.3,330,181.6,320); //8点

line(230,395.7,240,378.4); //7点

sleep(BLUE); //这里应该是打错,停止一秒,应为sleep(1000)

cleardevice(); //清除屏幕上的显示

closegraph(); //关闭VGA屏幕,即返回文本方式

return 0; 

}

图形时钟用C语言怎么编?

#include graphics.h

#include conio.h

#include math.h

void Draw(int hour, int minute, int second)

{

     double a_hour, a_min, a_sec;       // 时、分、秒针的弧度值

     int x_hour, y_hour, x_min, y_min, x_sec, y_sec; // 时、分、秒针的末端位置

     int x_hour1,y_hour1,x_min1,y_min1,x_sec1,y_sec1;

     // 计算时、分、秒针的弧度值

     a_sec = second * 2 * PI / 60;

     a_min = minute * 2 * PI / 60 ;

     a_hour= hour * 2 * PI / 12 + a_min / 12;;

     // 计算时、分、秒针的首末端位置

     x_sec = 320 + (int)(120 * sin(a_sec));

     y_sec = 240 - (int)(120 * cos(a_sec));

     x_min = 320 + (int)(100 * sin(a_min));

     y_min = 240 - (int)(100 * cos(a_min));

     x_hour= 320 + (int)(70 * sin(a_hour));

     y_hour= 240 - (int)(70 * cos(a_hour));

     x_sec1= 320 - (int)(15   * sin(a_sec));

     y_sec1= 240 + (int)(15   * cos(a_sec));

     x_min1= 320 - (int)(10   * sin(a_min));

     y_min1= 240 + (int)(10   * cos(a_min));

     x_hour1= 320 - (int)(5 * sin(a_hour));

     y_hour1= 240 + (int)(5 * cos(a_hour));

     // 画时针

     setlinestyle(PS_SOLID, NULL, 7);

     setcolor(WHITE);

     line(x_hour1, y_hour1, x_hour, y_hour);

     // 画分针

     setlinestyle(PS_SOLID, NULL, 4);

     setcolor(LIGHTGRAY);

     line(x_min1, y_min1, x_min, y_min);

     // 画秒针

     setlinestyle(PS_SOLID, NULL, 2);

     setcolor(RED);

     line(x_sec1, y_sec1, x_sec, y_sec);

}

void main()

{

     initgraph(640, 480);    // 初始化 640 x 480 的绘图窗口

     // 绘制一个简单的表盘

     circle(320, 240, 2);

     circle(320, 240, 60);

     circle(320, 240, 160);

     outtextxy(296, 330, "   竹斌");

     int x,y;

     for(int i=0;i12;i++)

     {

         x=320+(int)(140*sin(30*i*2*PI/360));

         y=240-(int)(140*cos(30*i*2*PI/360));

switch(i)

         {

         case 0:outtextxy(x-5,y-5,"12");break;

         case 1:outtextxy(x-5,y-5,"1");break;

         case 2:outtextxy(x-5,y-5,"2");break;

         case 3:outtextxy(x-5,y-5,"3");break;

         case 4:outtextxy(x-5,y-5,"4");break;

         case 5:outtextxy(x-5,y-5,"5");break;

         case 6:outtextxy(x-5,y-5,"6");break;

         case 7:outtextxy(x-5,y-5,"7");break;

         case 8:outtextxy(x-5,y-5,"8");break;

         case 9:outtextxy(x-5,y-5,"9");break;

         case 10:outtextxy(x-5,y-5,"10");break;

         case 11:outtextxy(x-5,y-5,"11");break;

         }

     }

     // 设置 XOR 绘图模式

     setwritemode(R2_XORPEN); // 设置 XOR 绘图模式

     //画刻度

     int a,b,a1,b1,n=0;

     for(n=0;n60;n++)

     {

     a=320+(int)(160 * sin(n*2*PI/60));

     b=240-(int)(160 * cos(n*2*PI/60));

     a1=320+(int)(150 * sin(n*2*PI/60));

     b1=240-(int)(150 * cos(n*2*PI/60));

     if(n%5==0)

         setlinestyle(PS_SOLID,NULL,5);

     else

         setlinestyle(PS_SOLID,NULL,1);

     line(a1,b1,a,b);

     }

     // 绘制表针

     SYSTEMTIME ti;      // 定义变量保存当前时间

     while(!kbhit())      // 按任意键退出钟表程序

     {

          GetLocalTime(ti);         // 获取当前时间

          Draw(ti.wHour, ti.wMinute, ti.wSecond);    // 画表针

          Sleep(1000);          // 延时 1 秒

          Draw(ti.wHour, ti.wMinute, ti.wSecond);    // 擦表针(擦表针和画表针的过程是一样的)

     }

     closegraph();      // 关闭绘图窗口

}

谁能帮我用c语言编写桌面钟表啊!

#includemath.h

#includedos.h

#includegraphics.h

#define CENTERX 320 /*表盘中心位置*/

#define CENTERY 175

#define CLICK 100 /*喀嗒声频率*/

#define CLICKDELAY 30 /*喀嗒声延时*/

#define HEBEEP 10000 /*高声频率*/

#define LOWBEEP 500 /*低声频率*/

#define BEEPDELAY 200 /*报时声延时*/

/*表盘刻度形状*/

int Mrk_1[8]={-5,-160,5,-160,5,-130,-5,-130, };

int Mrk_2[8]={-5,-160,5,-160,2,-130,-2-130, };

/*时针形状*/

int HourHand[8]={-3,-100,3,-120,4, 10,-4,10};

/*分针形状*/

int MiHand[8]={-3,-120,3,-120,4, 10,-4,10};

/*秒针形状*/

int SecHand[8]={-2,-150,2,-150,3, 10,-3,10};

/*发出喀嗒声*/

void Click()

{

sound(CLICK);

delay(CLICKDELAY);

nosound();

}

/*高声报时*/

void HighBeep()

{

sound(HEBEEP);

delay(BEEPDELAY);

nosound;

}

/*低声报时*/

void LowBeep()

{

sound(LOWBEEP);

}

/*按任意角度画多边形*/

void DrawPoly(int *data,int angle,int color)

{

int usedata[8];

float sinang,cosang;

int i;

sinang=sin((float)angle/180*3.14);

cosang=cos((float)angle/180*3.14);

for(i=0;i8;i+=2)

{

usedata[i] =CENTERX+ cosang*data[i]-sinang*data[i+1]+.5;

usedata[i+1]=CENTERY+sinang*data[i]+cosang*data[i+1]+.5;

}

setfillstyle(SOLID_FILL,color);

fillpoly(4,usedata);

}

/*画表盘*/

void DrawClock(struct time *cutime)

{

int ang;

float hourrate,minrate,secrate;

setbkcolor(BLUE);

cleardevice();

setcolor(WHITE);

/* 画刻度*/

for(ang=0;ang360;ang+=90)

{

DrawPoly(Mrk_1,ang,WHITE);

DrawPoly(Mrk_2,ang+30,WHITE);

DrawPoly(Mrk_2,ang+60,WHITE);

}

secrate=(float)cutime-ti_sec/60;

minrate=((float)cutime-ti_min+secrate)/60;

hourrate=(((float)cutime-ti_hour/12)+minrate)/12;

ang=hourrate*360;

DrawPoly(HourHand,ang,YELLOW);/*画时针*/

ang=minrate*360;

DrawPoly(MiHand,ang, GREEN);/*画分针*/

ang=secrate*360;

DrawPoly(SecHand,ang, RED);/*画秒针*/

}

main()

{

int gdriver=EGA,

gmode=EGAHI;

int curpage;

struct time curtime ,newtime ;

initgraph(gdriver,gmode,"c:\\tc");

setbkcolor(BLUE);

cleardevice();

gettime(curtime);

curpage=0;

DrawClock(curtime);

while(1)

{

if(kbhit())

break; /*按任意键退出*/

gettime(newtime); /*检测系统时间*/

if(newtime.ti_sec!=curtime.ti_sec)/*每1秒更新一次时间*/

{

if(curpage==0)

curpage=1;

else

curpage=0;

curtime=newtime;

/*设置绘图页*/

setactivepage(curpage);

/*在图页上画表盘*/

DrawClock(curtime);

/*设置绘图页为当前可见页*/

setvisualpage(curpage);

/*0分0秒高声报时*/

if(newtime.ti_min==0newtime.ti_sec==0)

HighBeep();

/* 59分55至秒时低声报时*/

else if(newtime.ti_min==59

newtime.ti_sec=59)

LowBeep();/*其他时间只发出喀嗒声*/

else

Click();

}

}

closegraph();

}