时间处理:计算下一天日期,如输入"2004/12/31"(注释2014年12月31日),则输出"2005/1/1".
/*
============================================================================
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".的更多相关文章
- (Java) 2014年1月1日减一个月涉及时间与字符的转换
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; impor ...
- OpenJudge计算概论-Tomorrow never knows【输入日期计算下一天的日期】
/*====================================================================== Tomorrow never knows? 总时间限制 ...
- python关于时间的计算,time模块
import time, datetime # time.time 返回当前时间的时间戳(1970纪元后经过的浮点秒数)(格林尼治时间). # 1分钟60秒,1小时3600秒,1天86400秒. pr ...
- 4月17日 (PS:由于时间问题,现在才发,望老师见谅)疯狂猜成语-----第三次站立会议 参会人员:杨霏,袁雪,胡潇丹,郭林林,尹亚男,赵静娜
疯狂猜成语-----第三次站立会议 参会人员:杨霏,袁雪,胡潇丹,郭林林,尹亚男,赵静娜 会议内容: 组员依次汇报自己的工作进度,并且提出自己在进行任务的过程中遇到的问题,是否解决以及解决办法. 以下 ...
- 【转载】c/c++在windows下获取时间和计算时间差的几种方法总结
一.标准C和C++都可用 1.获取时间用time_t time( time_t * timer ),计算时间差使用double difftime( time_t timer1, time_t time ...
- c/c++在windows下获取时间和计算时间差的几种方法总结 【转】
http://blog.csdn.net/coder_xia/article/details/6566708 一.标准C和C++都可用 1.获取时间用time_t time( time_t * tim ...
- c和c++在windows下获取时间和计算时间差的方法总结
c/c++在windows下获取时间和计算时间差的几种方法总结 一.标准C和C++都可用 1.获取时间用time_t time( time_t * timer ),计算时间差使用double diff ...
- c# 计算两日期的工作时间间隔(排除非工作日)及计算下一个工作时间点.
一个日期段如工作时间为 8:00 至 17:00 public class TimeHelper { /// <summary> /// 计算时间间隔 /// </summary&g ...
- java计算下一个整5分钟时间点
需求背景 我的需求是获取当前时间之后的下一个"整5分钟时间点". 首先,那么何为"整5分钟时间点"? 满足以下两个条件的时间: 分钟数等于以下时间中的一个,且秒 ...
随机推荐
- MySQL查询提示
MySQL查询提示: 1.LOW_PROPRITY,HIGHT_PRIORITY 作用:指定sql语句的运行优先级,会将加了HIGHT_PROPRITY提示的sql调度到表访问队列的最前面 限制:仅对 ...
- 安装eclipse版本oxygen,及maven导入spring mvc项目并运行
本文地址为:http://www.cnblogs.com/jying/p/7511598.html 系统环境: win10 eclipse版本:2017.09.11 官网下载版本号为 oxygen 1 ...
- 吴裕雄 python oracle检索数据(1)
import cx_Oracle conn = cx_Oracle.connect("scott/admin@localhost:1521/ORCL")cursor = conn. ...
- Python自动化运维开发实战 一、初识Python
导语 都忘记是什么时候知道python的了,我是搞linux运维的,早先只是知道搞运维必须会shell,要做一些运维自动化的工作,比如实现一些定时备份数据啊.批量执行某个操作啊.写写监控脚本什么的. ...
- 学JS的心路历程-JS支持面向对象?(一)
昨天在看Prototype看到JS支持面向对象,被前辈问到说那什么是面向对象?JS是面向对象语言吗? 便开始了一连串艰辛爬文过程,今天就来看一下两者有什么差异吧(rgwyjc)! 首先面向对象有三大特 ...
- js 事件event
var EventUtil = { addHandler: function(element,type,handler){ if(element.addEventListener){ element. ...
- 关于解决java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoader问题
解决方案: 其实是你的jar文件没有同步发布到自己项目的lib目录中 (如果是用Maven进行构建的话) 可以试试 下面的办法 –rebuild下project就可以了 项目点击右键 点击 Prope ...
- day16 包的使用 json time 常用模块
复习 1.判断py文件的两种用途 提到判断__name__ == '__main__'时,会执行py文件, 直接输入main,在pycharm里按tab直接自动输入这条语句 2.解决模块相互导入的问题 ...
- day13 多个装饰器叠加 生成式
1.装饰器剩余 from functions import wraps @wrap(func) 会把func内的自带方法赋给wrapper,这样wrapper装饰函数就和原函数一模一样 多个装饰器叠加 ...
- Hibernate框架学习笔记
Hibernate 是一个 JDO( Java Data Objects)工具.它的工作原理是通过文件把值对象(Java对象)和 数据库表之间建立起一个映射关系,还提供数据查询和获取数据的方法. ...