Tag: 时间

在ubuntu存储大小下获得时间

我正在用C语言编写一个程序,它是Ubuntu 13.04环境下一个理发店一个椅子模型的模拟程序。 我有一个timer()函数,它给了我这个错误: storage size of ‘t’ isn’t known>> 这是函数和调用它的指令: #include #include #include function : long timer() { //get current system time struct time t; gettime(&t); //return number of hundred of second return(((long)3600*t.ti_hour+60*t.ti_min+t.ti_sec)*100+t.ti_hund); } 调用此函数的指令: srand((unsigned) timer()); 可能的问题是: 1-这是什么错误主要? 2 – 如何修复此错误?

打印日历月

实现打印给定月份和年份的日历的function。 首先,提示用户: Enter the month and year: 一旦用户输入有效输入(由空格分隔的两个整数),以与UNIX cal命令的输出类似的格式打印日历。 例如,如果用户输入03 2014 ,则输出应为: 我需要帮助才能向用户询问此问题所要求的具体输入。 我也无法创建能够根据输入打印不同月份的代码,因为每个月都会在不同的一天开始。 我不能使用任何太复杂的东西,因为我正在编程的初学者课程。 我到目前为止只编写了3月份的代码: #include int main() { int k, rmd; printf(” March 2014\n”); printf(” Su Mo Tu We Th Fr Sa\n”); for(k = 1; k < 32; ++k) { if(k == 1){ printf(" %2d\n", k); } else if(k % 7 == 1) […]

这个基本算法O(n)怎么样?

int G(int a[], int n) { int x=0, i, j; for(i=1; i<n; i=i*2){ for(j=0; j<i; j++) x += a[j]; } return x; } 最坏的情况如何严格限制在该算法O(n)上。 第一个循环是不执行O(log(n)次,第二个循环执行O(n)次是否给出O(n logn)?

mktime返回错误的时间戳(关闭整整一个月)

我使用mktime从当前本地时间创建一个unix时间戳: #include int _tmain(int argc, _TCHAR* argv[]) { struct tm info; // 16.05.2014 info.tm_mday = 16; info.tm_mon = 5; info.tm_year = 114; // Years since 1900 // 08:00:00 Uhr info.tm_hour = 8; info.tm_min = 0; info.tm_sec = 0; // Convert to Unix timestamp info.tm_isdst = -1; time_t timestamp = mktime(&info); printf(“Timestamp: %i”, timestamp); } 这给了我: […]

C ++ mktime返回随机日期

我正在尝试将日期字符串转换为time_t ,但mktime()返回看似随机的日期: string datetime = “2014-12-10 10:30”; struct tm tmInfo; strptime(datetime.c_str(), “%Y-%m-%d %H:%M”, &tmInfo); tmInfo.tm_isdst = 0; time_t eventTime = mktime(&tmInfo); eventTime的范围从20世纪70年代到2030年代。 tmInfo结构保存正确的日期,因此必须在mktime()中发生错误。 什么出错的想法?

Jiffies – 如何计算秒数?

我有一段代码,我想以秒计算时间..虽然我在jiffies有时间,我怎么能在几秒钟内转换它? 这是我的内核代码: #include #include #include #include unsigned long js, je, tet; int netblock_init_module(void){ js = jiffies; printk(“\n[Jiffies start Time : %lu]\nModule Started.\n”, js); return 0; } void netblock_cleanup_module(void) { je = jiffies; printk(“\n[Jiffies End Time : %lu]\nModule Removed.\n”, je); tet = je – js; printk(“\nEnd Time [%lu] – Start Time [%lu]: \nTotlal elapsed Time [%lu]\n”,js,je, […]

MATLAB的tic-toc和C的时钟差异

我编写了一些C代码,在使用MEX编译之后我将其称为MATLAB。 在C代码中,我使用以下代码测量计算的一部分时间: clock_t begin, end; double time_elapsed; begin = clock(); /* do stuff… */ end = clock(); time_elapsed = (double) ((double) (end – begin) / (double) CLOCKS_PER_SEC); 经过的时间应该是以秒为单位的执行时间。 然后我将值time_elapsed输出到MATLAB(它被正确导出;我检查过)。 然后MATLAB端我调用这个C函数(在我使用MEX编译它之后)并使用tic和toc测量它的执行时间。 结果是完全荒谬的是我使用tic和toc计算的时间是0.0011s(500次运行时的平均值,st.dev.1.4e-4),而C代码返回的时间是0.037s(平均500次运行,st.dev.0016)。 人们可能会注意到两个非常奇怪的事实: 整个函数的执行时间低于部分代码的执行时间。 因此,MATLAB或C的测量结果非常不准确。 在C代码中测量的执行时间非常分散并且表现出非常高的st。 偏差(变异系数44%,而tic-toc仅为13%)。 这些计时器发生了什么事?

为getchar()添加超时

我需要在程序中为getchar()添加一个超时函数。 我该怎么办,当我的程序到达指令getchar()时,它只会等待一段时间让用户进行击键,如果用户没有在给定的时间限制内进行击键,程序将“跳过”getchar()? 操作系统不支持conio.h库,因此kbhit不是一个选项。

测量执行单个指令的时间

有没有办法使用C或汇编程序甚至C#来准确衡量执行ADD指令所需的时间?

C如何正确测量时间?

这是“算法”,但是当我想测量执行时间时,它给我零。 为什么? #define ARRAY_SIZE 10000 … clock_t start, end; start = clock(); for( i = 0; i < ARRAY_SIZE; i++) { non_parallel[i] = vec[i] * vec[i]; } end = clock(); printf( "Number of seconds: %f\n", (end-start)/(double)CLOCKS_PER_SEC ); 那么我该怎么做来衡量时间呢?