食用指南
阅读此文章只需要C语言基础即可。
共1470字,预计用时8分钟。
涉及到知识点
- 函数
- 头文件
- 时间换算
读前知识
time.h
时间操作头文件struct tm
时间信息结构体time_t
用来记录从1970年到现在过了多少秒(时间戳)
time(NULL)
获取当前时间的时间戳
mktime
maketime 创建一个时间戳
localtime
当前时间戳
思路实现
思路
- 设定目标时间(2021-06-09)
- 获取当前时间
- (目标时间-当前时间)/3600/24
实现
1. 引入头文件
#include <stdio.h>
#include <time.h>
2. 设置目标时间
// 截止时间
time_t init(){
time_t timep;
struct tm* t;
// 2021-6-9
t = localtime(&timep);
t->tm_year = 2021-1900;t->tm_mon = 6-1;t->tm_mday=9;
t->tm_hour=0;t->tm_min=0;t->tm_sec=0;
return mktime(t);
}
说明:这里的-1900,是因为C语言日期从1900年开始计算的。
定义时间信息结构体,然后设定值。最后通过mktime创建目标时间时间戳。
3. 获取当前时间
time_t now = time(NULL);
固定写法没什么好说的
运算时间
int getRestDays(){
time_t deadline = init();
time_t now = time(NULL);
return (int)(deadline-now)/3600/24;
}
通过上面我们知道获取的时间戳单位是秒,所以我们需要换算成天。
完整代码
#include <stdio.h>
#include <time.h>
// 截止时间
time_t init(){
time_t timep;
struct tm* t;
// 2021-6-9
t = localtime(&timep);
t->tm_year = 2021-1900;t->tm_mon = 6-1;t->tm_mday=9;
t->tm_hour=0;t->tm_min=0;t->tm_sec=0;
return mktime(t);
}
// 获取剩余天数
int getRestDays(){
time_t deadline = init();
time_t now = time(NULL);
return (int)(deadline-now)/3600/24;
}
int main(){
int days = getRestDays();
printf("距离专升本还剩%d天\n",days);
return 0;
}
运行结果
距离专升本还剩52天
你以为故事到这里就结束了?
重头戏:使用wasm打包使我们的c程序运行到网页上
这里我们使用wasm实现
操作步骤
emcc time.c -s WASM=1 -o time.html
emrun --no_browser --port 8080 .