#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】制作简单的时钟减法程序的更多相关文章

  1. 使用exe4j工具制作简单的java应用程序

    首先需要下载exe4j工具并进行安装,下面是利用exe4j工具制作应用程序的步骤. 1.首先将工程导出为可运行的jar包,选择extract required libralies into gener ...

  2. 制作简单的WPF时钟

    原文:制作简单的WPF时钟 在很早之前,我曾经写过一个GDI+的时钟,见"C#时钟控件 (C# Clock Control)" http://blog.csdn.net/johns ...

  3. MFC制作简单通讯录程序

    学习c++和MFC一段时间了,苦于没有项目实战,所以自己写了一个简单的简单通讯录程序,以前用c#写简单很多,例程是这本书上的实例,我的第一个winform程序也是从这本书上学的,总结c#写的话更简单, ...

  4. 基于OpenCV制作道路车辆计数应用程序

    基于OpenCV制作道路车辆计数应用程序 发展前景 随着科学技术的进步和工业的发展,城市中交通量激增,原始的交通方式已不能满足要求:同时,由于工业发展为城市交通提供的各种交通工具越来越多,从而加速了城 ...

  5. ZAM 3D 制作简单的3D字幕 流程(二)

    原地址:http://www.cnblogs.com/yk250/p/5663907.html 文中表述仅为本人理解,若有偏差和错误请指正! 接着 ZAM 3D 制作简单的3D字幕 流程(一) .本篇 ...

  6. WPF制作的小时钟

    原文:WPF制作的小时钟 周末无事, 看到WEB QQ上的小时钟挺可爱的, 于是寻思着用WPF模仿着做一个. 先看下WEB QQ的图: 打开VS, 开始动工. 建立好项目后, 面对一个空荡荡的页面, ...

  7. c#制作简单启动画面的方法

    本文实例讲述了c#制作简单启动画面的方法.分享给大家供大家参考.具体分析如下: 启动画面是程序启动加载组件时一个让用户稍微耐心等待的提示框.一个好的软件在有启动等待需求时必定做一个启动画面.启动画面可 ...

  8. Highcharts使用教程(1):制作简单图表

    今天我们要使用JavaScript图表Highcharts制作简单的柱形图,我们已经安装好Highcharts,让我们开始制作图表吧. 步骤一 在网页中添加一个div.设置id,设置图表长.高.代码如 ...

  9. 一个简单的P2P传输程序

    写了一个简单的P2P传输程序,在P2P的圈子中传输文件,不过为了简便,这个程序没有真正的传输文件,只是简单的判断一下文件的位置在哪里.这个程序可以处理当有一个peer闪退的情况,在这种情况下,剩下的p ...

随机推荐

  1. C#中 Request, Request.params , Request.querystring , Request.Form 区别 与联系用法

    C#中 Request, Request.params , Request.querystring , Request.Form 区别 与联系用法? Request.params , Request ...

  2. Linux 服务器IO模型 epoll

    epoll模型 #include <unistd.h> #include <sys/types.h> /* basic system data types */ #includ ...

  3. 在代码设置RelativeLayout的属性,比如layout_below

    ( (RelativeLayout.LayoutParams)holder.ivLvDivider.getLayoutParams()).addRule(RelativeLayout.BELOW, R ...

  4. text-justify实操

    转自:http://www.zhangxinxu.com/wordpress/?p=1514 CSS代码: .video-list{width:540px; margin-left:auto; mar ...

  5. 数据表格datagrid内容整理

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  6. html、css基础注意点

    之前第一次接触html,一直使用table进行布局,十分麻烦还相当丑陋,造成当初并没有多大的兴趣,直到半年前开始接触到了使用div+css编写页面,才对它有了兴趣.作为一个菜鸟记录自己的点滴教训与收获 ...

  7. Objective-C_基本数据类型详解

    今天在工作群里面看到有人在发面试题求帮解答,顺便看了一眼,发现一个很侮辱程序员的面试题,但是自己也答得不是很好,所以特意上网查了一下资料,废话不说,附原题: “常见的Objective-C的数据类型有 ...

  8. Java期末设计(十三周)

    一.项目完成计划     十三周和十四周完成用户交互界面的设计(1.登陆界面2.订票以及查询界面3.用户管理界面4.退票界面):     十三周完成登陆界面,十四周完成订票以及查询界面,用户管理界面和 ...

  9. python datetime处理时间

    原文:http://blog.csdn.net/JGood/article/details/5457284 Python提供了多个内置模块用于操作日期时间,像calendar,time,datetim ...

  10. 在 Xcode 7 中安装 Alcatraz

    http://www.jianshu.com/p/5c8ed25ad434 安装Xcode7后,继续采用官方方法安装Alcatraz,发现不成功.单独安装XVim也不成功.看了一下Alcatraz的i ...