当前位置:首页 » 编程语言 » c语言时间验证
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言时间验证

发布时间: 2022-08-10 08:55:13

c语言有什么简单办法判断一个字符串是否是合法日期

推荐使用正则表达式,对于验证日期、手机号或邮箱的合法性很有用!

⑵ C语言中,如何验证输入日期的正确性!~

  1. 主要验证三个信息:

    a.验证月数是否在1~12,m>0&&m<=12

    b.验证日数是否超过当月,d>0&&d<=month[m-1]

    c.对平闰年的判断,if((y%4==0&&y%100!=0)||y%400==0)month[1]=29

  2. 例程:

    #include<stdio.h>
    staticintis_valid_date(inty,intm,intd)
    {
    intmonth[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    if((y%4==0&&y%100!=0)||y%400==0)
    month[1]=29;
    returnm>0&&m<=12&&d>0&&d<=month[m-1];
    }
    intmain(void)
    {
    inty,m,d;
    scanf("%4d-%2d-%2d",&y,&m,&d);
    if(is_valid_date(y,m,d))
    printf("validdate ");
    else
    printf("invaliddate ");
    return0;
    }

⑶ C语言验证日期格式是否正确

#include<stdio.h>
typedefstruct{inty,m,d;}Date;
intmon[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
intcheckDate(Datedate)
{mon[2]=28+(date.y%4==0&&date.y%100||date.y%400==0);
returndate.y>0&&date.m>0&&date.d>0&&date.m<13&&date.d<=mon[date.m];
}
intmain()
{Datedate;
scanf("%d%*c%d%*c%d",&date.y,&date.m,&date.d);
printf("%s",(checkDate(date)?"OK":"Error"));
return0;
}

⑷ C语言程序运行时间测试

C/C++中的计时函数是clock(),而与其相关的数据类型是clock_t。在MSDN中,查得对clock函数定义如下:

clock_t clock( void );

这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,在MSDN中称之为挂钟时间(wal-clock)。其中clock_t是用来保存时间的数据类型,在time.h文件中,我们可以找到对它的定义:

#ifndef _CLOCK_T_DEFINED
typedef long clock_t;
#define _CLOCK_T_DEFINED
#endif

很明显,clock_t是一个长整形数。在time.h文件中,还定义了一个常量CLOCKS_PER_SEC,它用来表示一秒钟会有多少个时钟计时单元,其定义如下:

#define CLOCKS_PER_SEC ((clock_t)1000) //CLOCKS_PER_SEC为系统自定义的

可以看到每过千分之一秒(1毫秒),调用clock()函数返回的值就加1。下面举个例子,你可以使用公式clock()/CLOCKS_PER_SEC来计算一个进程自身的运行时间:

void elapsed_time()
{
printf("Elapsed time:%u secs./n",clock()/CLOCKS_PER_SEC);
}

当然,你也可以用clock函数来计算你的机器运行一个循环或者处理其它事件到底花了多少时间:

#include “stdio.h”
#include “stdlib.h”
#include “time.h”

int main( )
{
long i = 10000000L;
clock_t start, finish;
double Total_time;
/* 测量一个事件持续的时间*/
printf( "Time to do %ld empty loops is ", i );
start = clock();
while( i--) ;

finish = clock();
Total_time = (double)(finish-start) / CLOCKS_PER_SEC;
printf( "%f seconds/n", Total_time);
return 0;

}

在笔者的机器上,运行结果如下:

Time to do 10000000 empty loops is 0.03000 seconds

上面我们看到时钟计时单元的长度为1毫秒,那么计时的精度也为1毫秒,那么我们可不可以通过改变CLOCKS_PER_SEC的定义,通过把它定义的大一些,从而使计时精度更高呢?通过尝试,你会发现这样是不行的。在标准C/C++中,最小的计时单位是一毫秒。

⑸ C语言 验证时间戳

有,时间戳一般是一个毫秒值。有系统函数可以获取。具体是啥记不清了

⑹ c语言 时间函数

c语言时间函数:
1、获得日历时间函数:
可以通过time()函数来获得日历时间(Calendar Time),其原型为:time_t time(time_t * timer);
如果已经声明了参数timer,可以从参数timer返回现在的日历时间,同时也可以通过返回值返回现在的日历时间,即从一个时间点(例如:1970年1月1日0时0分0秒)到现在此时的秒数。如果参数为空(NUL),函数将只通过返回值返回现在的日历时间,比如下面这个例子用来显示当前的日历时间:
2、获得日期和时间函数:
这里说的日期和时间就是平时所说的年、月、日、时、分、秒等信息。从第2节我们已经知道这些信息都保存在一个名为tm的结构体中,那么如何将一个日历时间保存为一个tm结构的对象呢?
其中可以使用的函数是gmtime()和localtime(),这两个函数的原型为:
struct tm * gmtime(const time_t *timer);
struct tm * localtime(const time_t * timer);
其中gmtime()函数是将日历时间转化为世界标准时间(即格林尼治时间),并返回一个tm结构体来保存这个时间,而localtime()函数是将日历时间转化为本地时间。比如现在用gmtime()函数获得的世界标准时间是2005年7月30日7点18分20秒,那么用localtime()函数在中国地区获得的本地时间会比世界标准时间晚8个小时,即2005年7月30日15点18分20秒。

⑺ 【C语言关于运行时间的小问题】【谢谢大家】【在线等】

一、使用c的time.h中的函数 或者windows api GetTicketCount()函数
使用方式下面的程序里面有介绍,相信结合具体程序,你更易懂些。
二、使用线程控制函数 _beginthreadex,想要使计时不受任何东西影响,最好的方式就是使用线程。
具体请看下面我写的一个示例程序,编译一下就可以直接运行。这个程序你可以直接用在你的程序里面。有任何不解的地方欢迎和我联系。

#include<stdio.h>
#include<windows.h>
#include <process.h>
#include <time.h>

#define TICKET_ENABLE 0
#define TICKET_DISABLE 0x1

void ticktThread(void *p);
int ticktDisable;
double ration=0;

void main()
{
char str[256];
int count=0;
ticktDisable=TICKET_ENABLE;/*令ticktDisable=TICKET_ENABLE使得计时函数得以运行,程序运行的时候可随时将ticktDisable=TICKET_DISABLE使计时线程终止*/
_beginthread(ticktThread,0,NULL);//在你想要开始计时的地方,添加这条加上面的那条语句
/*你可以将下面代码替换成你的代码,下面的所有代码都是示例printf,scanf ,while语句等都不会影响计时*/
printf("不管我做什么计时都不会受到影响\n");
scanf("%s",str);
printf("%s\n",str);
//在此处做任何事情都不会影响计时
//任何时候你都可以获得计时值,变量ration里面存的便是当前的计数值
printf("接下来将计时10秒...\n");
while(++count<100)
{

printf("\r当前计时为:%2.1f",ration);
Sleep(100);
}
ticktDisable=TICKET_DISABLE;
printf("\n计时器结束!总运行时间为%4.3f(精确到毫秒)",ration);
Sleep(3000);

}
//计时器clock()函数的使用
void ticktThread(void *p)
{
char displayBuf[128];
clock_t start,end;//首先定义计时点变量

HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO c_info;
GetConsoleScreenBufferInfo(hConsole,&c_info);

start=clock();//获得此刻时间作为计时开始时间
while (!ticktDisable)
{

end=clock();//获得此刻时间作为计时结束时间
ration=(double)(end-start)/CLOCKS_PER_SEC;/*结束时间-开始时间得到时间差,就得到的计时值*/
sprintf(displayBuf,"正在计时 %2.1f",ration);
SetConsoleTitle(displayBuf);/*设置标题栏,将计时显示到标题栏是为了让计时看起来更加直观,如果不需要,删除这一句就可以了*/
Sleep(10);
}

}

⑻ 用c语言对用户输入的日期型数据进行有效性验证,yyyy~m~d代表年月日保证

#include<stdio.h>
intmain(intargc,char*argv[]){
inty,m,d,c[12]={31,28,31,30,31,30,31,31,30,31,30,31};
printf("Inputy,m&d... ");
while(1){
scanf("%d%d%d",&y,&m,&d);
c[1]=28+(y%4==0&&y%100||y%400==0);
if(m>0&&m<13&&d>0&&d<=c[m-1])
break;
printf("Inputerror,redo:");
}
printf("Yourinputis%d-%d-%d ",y,m,d);
return0;
}

⑼ C语言单片机if(irtime<63&&irtime>=33)这个程序的验证时间是多少

这应该说是遥控器解码程序把,irtime变量ir是红外的意思time时间,你这个判断语句应该是判断电平的持续时间,在这个范围内,具体时间眼要看irtime这个变量是在哪里计数的,这样就一目了然了

⑽ C语言编程问题,验证出生日期的合法性问题

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<conio.h>
constintMAXSIZE=1000;
unsigneda[MAXSIZE];

voidf1(){
unsigneddate;
inti;
for(i=0;i<MAXSIZE;++i){
date=rand()%(2015-1890+1)+1890;
date=10000*date+rand()%1131+101;
a[i]=date;
}
}

intf2(unsigneddate){
unsignedyear=date/10000;
unsignedmonth=date%10000/100;
unsignedday=date%10000%100;
if(year<1890||year>2015)return0;
if(month<1||month>12)return0;
if(day<1||day>31)return0;
if(month==2){
if(year%4==0&&year%100!=0||year%400==0){
if(day>29)return0;
}
elseif(day>28)return0;
}
switch(month){
case4:
case6:
case9:
case11:if(day>30)return0;
}
return1;
}

voidf3(unsigneddate){
printf("%u年",date/10000);
printf("%02u月",date%10000/100);
printf("%02u日 ",date%10000%100);
}

intmain(){
inti;
srand((unsigned)time(NULL));
f1();
for(i=0;i<MAXSIZE;++i)
if(f2(a[i]))f3(a[i]);
return0;
}