/*
============================================================================
Name : Exercise.c
Author : haier
Version : 0.01
Copyright : Your copyright notice
Description : Ansi-style, Compile by Code:Blocks, Platform Linux
============================================================================
*/ /*
思路:首先求出输入时间到1970-1-1总秒数,然后加上一天时间后转换成日历时间并输出。
*/ #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <ctype.h> #define SECONDS_PER_DAY (60*60*24) struct date
{
unsigned year;
unsigned month;
unsigned day;
} myDate; void nextDay(struct date myDate)
{
struct tm time,*tm_ptr;
time_t seconds; /*填充struct tm*/
time.tm_year = myDate.year - 1900;
time.tm_mon = myDate.month - 1;
time.tm_mday = myDate.day;
time.tm_hour = 12; //默认为该日12:00:00
time.tm_min = 0;
time.tm_sec = 0;
seconds=mktime(&time)+SECONDS_PER_DAY; //转换tm结构为time_t类型值,并加一天 /*转换并打印日期*/
tm_ptr = gmtime(&seconds);
printf("%d/%d/%d\n",tm_ptr->tm_year+1900, tm_ptr->tm_mon+1, tm_ptr->tm_mday);
} int main()
{
char strTime[20];
char *p;
int inputTimes=3; /*输入处理,允许输入3次*/
do
{
inputTimes--;
printf("Please input the date(YYYY/MM/DD) : ");
scanf("%s",strTime); /*转换时间字符串*/
p = strtok(strTime, "/");
myDate.year=atoi(p);
p = strtok(NULL, "/");
myDate.month=atoi(p);
p = strtok(NULL, "/");
myDate.day=atoi(p); if(myDate.year<1970 || myDate.month<=0 || myDate.month>12 || myDate.day<=0 || myDate.day >31)
{
printf("error in input, please try again !\n");
}
else
{
break;
} }while(inputTimes>0); if(inputTimes>0)
{
        nextDay(myDate);
    }

    return 0;
}

运行示例:

时间处理:计算下一天日期,如输入"2004/12/31"(注释2014年12月31日),则输出"2005/1/1".的更多相关文章

  1. (Java) 2014年1月1日减一个月涉及时间与字符的转换

    import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; impor ...

  2. OpenJudge计算概论-Tomorrow never knows【输入日期计算下一天的日期】

    /*====================================================================== Tomorrow never knows? 总时间限制 ...

  3. python关于时间的计算,time模块

    import time, datetime # time.time 返回当前时间的时间戳(1970纪元后经过的浮点秒数)(格林尼治时间). # 1分钟60秒,1小时3600秒,1天86400秒. pr ...

  4. 4月17日 (PS:由于时间问题,现在才发,望老师见谅)疯狂猜成语-----第三次站立会议 参会人员:杨霏,袁雪,胡潇丹,郭林林,尹亚男,赵静娜

    疯狂猜成语-----第三次站立会议 参会人员:杨霏,袁雪,胡潇丹,郭林林,尹亚男,赵静娜 会议内容: 组员依次汇报自己的工作进度,并且提出自己在进行任务的过程中遇到的问题,是否解决以及解决办法. 以下 ...

  5. 【转载】c/c++在windows下获取时间和计算时间差的几种方法总结

    一.标准C和C++都可用 1.获取时间用time_t time( time_t * timer ),计算时间差使用double difftime( time_t timer1, time_t time ...

  6. c/c++在windows下获取时间和计算时间差的几种方法总结 【转】

    http://blog.csdn.net/coder_xia/article/details/6566708 一.标准C和C++都可用 1.获取时间用time_t time( time_t * tim ...

  7. c和c++在windows下获取时间和计算时间差的方法总结

    c/c++在windows下获取时间和计算时间差的几种方法总结 一.标准C和C++都可用 1.获取时间用time_t time( time_t * timer ),计算时间差使用double diff ...

  8. c# 计算两日期的工作时间间隔(排除非工作日)及计算下一个工作时间点.

    一个日期段如工作时间为 8:00 至 17:00 public class TimeHelper { /// <summary> /// 计算时间间隔 /// </summary&g ...

  9. java计算下一个整5分钟时间点

    需求背景 我的需求是获取当前时间之后的下一个"整5分钟时间点". 首先,那么何为"整5分钟时间点"? 满足以下两个条件的时间: 分钟数等于以下时间中的一个,且秒 ...

随机推荐

  1. 13.Java国际化.md

    一.国际化开发概述 软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的.符合来访者阅读习惯的页面或数据. 国际化(internationaliz ...

  2. hdu3189-Just Do It-(埃氏筛+唯一分解定理)

    Just Do It Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  3. Java的二分查找

    今天学习了二分查找,虽然代码简单,但还是要有必要,记录一下今天的学习的. public class TestBrinarySeach { public static void main(String[ ...

  4. linux系统上项目部署

    步骤:(特别注意:虚拟机安装的一般是32位的操作系统,jdk也必须使用32位的)查看虚拟机版本:sudo uname --m i686 //表示是32位 x86_64 // 表示是64位 查看是否已经 ...

  5. Spring @ControllerAdvice @ExceptionHandler 全局处理异常

    对于与数据库相关的 Spring MVC 项目,我们通常会把 事务 配置在 Service层,当数据库操作失败时让 Service 层抛出运行时异常,Spring 事物管理器就会进行回滚. 如此一来, ...

  6. new.target

    [new.target] The new.target property lets you detect whether a function or constructor was called us ...

  7. Spring 学习笔记

            Spring 的 Ioc 容器 所有的组件都是被动的( Passive),所有的组件初始化和调用都由容器负责.组件处在一个容器当中,由容器负责管理. BeanFactory 根据配置文 ...

  8. CentOS SELinux服务关闭与开启

    查看SElinux是否开启  查看是否开启SELinux,如果是未开启则是diabled,enforcing(enforce的分词,正在执行的意思),表明开启   #getenforce  临时关闭S ...

  9. 高德地图开发者平台获取sHA1值

    一般在  Application 中进行初始化 /** * 获取高德SHA1值 * */ public static String sHA1(Context context) { try { Pack ...

  10. TOJ 3973 Maze Again && TOJ 3128 简单版贪吃蛇

    TOJ3973传送门:http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=3973 时间限制(普通 ...