【C】制作简单的时钟减法程序
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define ARGC_NUM 3
#define MAX_STR_NUM 6
#define H_AND_M_NUM 3
#define DELIMS ":"
#define M_2_S 60
#define D_2_H 24*M_2_S
int findH_M(char*str, char*h, char*m)
{
char* pTmp=NULL;
int ulTmp=;
pTmp=strtok(str, DELIMS);
ulTmp=strlen(pTmp);
if (ulTmp>=H_AND_M_NUM)
{
printf("Error arg: %s\n", str);
return -;
}
memcpy(h, pTmp, ulTmp); pTmp=strtok(NULL, DELIMS);
ulTmp=strlen(pTmp);
if (ulTmp>=H_AND_M_NUM)
{
printf("Error arg: %s\n", str);
return -;
}
memcpy(m, pTmp, ulTmp);
return ;
} /* 只支持24小时以内的时钟减法 */
int main(int argc, char* argv[])
{
char strBegin[MAX_STR_NUM]="";
char strEnd[MAX_STR_NUM]="";
char BeginH[H_AND_M_NUM]="";
char BeginM[H_AND_M_NUM]="";
char EndH[H_AND_M_NUM]="";
char EndM[H_AND_M_NUM]="";
unsigned int ulBeginTimeM=;
unsigned int ulEndTimeM=;
int BeginLen=;
int EndLen=;
if ( == strcmp("-h", argv[]))
{
printf("Useage: calcTime BeginTime EndTime \n""e.g. calcTime 18:58 19:59\n");
return ;
} if (ARGC_NUM != argc)
{
printf("Error! argc=%d\n", argc);
return -;
}
BeginLen=strlen(argv[]);
EndLen=strlen(argv[]); if ((BeginLen>=MAX_STR_NUM) || (EndLen>=MAX_STR_NUM))
{
printf("Error len! argv[1]=%s, argv[2]=%s\n", argv[], argv[]);
return -;
} memcpy(strBegin, argv[], BeginLen);
memcpy(strEnd, argv[], EndLen); if (( != findH_M(strBegin, BeginH, BeginM)) || ( != findH_M(strEnd, EndH, EndM)))
{
return -;
}
ulBeginTimeM=atoi(BeginH)*M_2_S+atoi(BeginM);
ulEndTimeM=atoi(EndH)*M_2_S+atoi(EndM);
ulEndTimeM=(ulEndTimeM>ulBeginTimeM)?(ulEndTimeM):(ulEndTimeM+D_2_H);
printf("Congratulations! End-Begin is %d:%d\n", (ulEndTimeM-ulBeginTimeM)/M_2_S,(ulEndTimeM-ulBeginTimeM)%M_2_S);
return ;
}
使用方法:
X:\gcc>calcTime -h
Useage: calcTime BeginTime EndTime
e.g. calcTime 18:58 19:59
X:\gcc> calcTime 18:58 19:59
Congratulations! End-Begin is 1:1
【C】制作简单的时钟减法程序的更多相关文章
- 使用exe4j工具制作简单的java应用程序
首先需要下载exe4j工具并进行安装,下面是利用exe4j工具制作应用程序的步骤. 1.首先将工程导出为可运行的jar包,选择extract required libralies into gener ...
- 制作简单的WPF时钟
原文:制作简单的WPF时钟 在很早之前,我曾经写过一个GDI+的时钟,见"C#时钟控件 (C# Clock Control)" http://blog.csdn.net/johns ...
- MFC制作简单通讯录程序
学习c++和MFC一段时间了,苦于没有项目实战,所以自己写了一个简单的简单通讯录程序,以前用c#写简单很多,例程是这本书上的实例,我的第一个winform程序也是从这本书上学的,总结c#写的话更简单, ...
- 基于OpenCV制作道路车辆计数应用程序
基于OpenCV制作道路车辆计数应用程序 发展前景 随着科学技术的进步和工业的发展,城市中交通量激增,原始的交通方式已不能满足要求:同时,由于工业发展为城市交通提供的各种交通工具越来越多,从而加速了城 ...
- ZAM 3D 制作简单的3D字幕 流程(二)
原地址:http://www.cnblogs.com/yk250/p/5663907.html 文中表述仅为本人理解,若有偏差和错误请指正! 接着 ZAM 3D 制作简单的3D字幕 流程(一) .本篇 ...
- WPF制作的小时钟
原文:WPF制作的小时钟 周末无事, 看到WEB QQ上的小时钟挺可爱的, 于是寻思着用WPF模仿着做一个. 先看下WEB QQ的图: 打开VS, 开始动工. 建立好项目后, 面对一个空荡荡的页面, ...
- c#制作简单启动画面的方法
本文实例讲述了c#制作简单启动画面的方法.分享给大家供大家参考.具体分析如下: 启动画面是程序启动加载组件时一个让用户稍微耐心等待的提示框.一个好的软件在有启动等待需求时必定做一个启动画面.启动画面可 ...
- Highcharts使用教程(1):制作简单图表
今天我们要使用JavaScript图表Highcharts制作简单的柱形图,我们已经安装好Highcharts,让我们开始制作图表吧. 步骤一 在网页中添加一个div.设置id,设置图表长.高.代码如 ...
- 一个简单的P2P传输程序
写了一个简单的P2P传输程序,在P2P的圈子中传输文件,不过为了简便,这个程序没有真正的传输文件,只是简单的判断一下文件的位置在哪里.这个程序可以处理当有一个peer闪退的情况,在这种情况下,剩下的p ...
随机推荐
- 3.一般用AE开发的时候都会报错,具体只要加一行代码就行
ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);
- Windows下 VM12虚拟机安装OS X 10.11 和VM TOOLS
Windows下虚拟机安装Mac OS X —– VMware Workstation12安装Mac OS X 10.11 本文即将介绍WIN虚拟MAC的教程.完整详细教程(包含安装中的一些问题) [ ...
- 深入浅出Mybatis系列(九)---强大的动态SQL
上篇文章<深入浅出Mybatis系列(八)---mapper映射文件配置之select.resultMap>简单介绍了mybatis的查询,至此,CRUD都已讲完.本文将介绍mybatis ...
- html/css 浮动练习之井字形布局
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- HttpHandler
HttpHandler初探 一.HttpHandler简介 HttpHandler是asp.net真正处理Http请求的地方.在这个HttpHandler容器中,ASP.NET Framework才真 ...
- Flapper Bird的学习笔记(三)
因为我有一个超屌的梦想,所以就绝不会做一个孬种的追梦人! 完成音效的添加 单例模式 游戏的状态切换 1. 单例模式 首先呢,说一下单例模式.何为单例?单例模式是一种常用的软件设计模式.在它的核心结构中 ...
- toolsqa-IMPORTANCE
http://toolsqa.com/cucumber/cucumber-options/
- Redux教程2:链接React
通过前面的教程,我们有了简单的环境,并且可以运行Redux的程序,也对 如何编写Redux示例 有了初步的印象: 掌握了 使用Redux控制状态转移 ,继而驱动 React 组件发生改变,这才是学习R ...
- 使用CSDN Code将网站部署到Windows Azure Website上
在云计算时代,开发和部署应该是完全统一和集成的.在海外,开发者可以用github来管理他们的代码,并且直接部署到Windows Azure上.随着Windows Azure在国内的发布,我们发现,其实 ...
- Storm进程通信机制
storm的worker进程之间消息传递机制图: 每个worker都有一个独立的监听进程,监听配置文件中配置过的端口列表supervisor.slots.ports,topology.receiver ...