后N天C语言,c语言计算一个日期的下一天后N天后的日期
http://blog.sina.com.cn/s/blog_6be3556a0101g87u.html
方法一:
---------------------------------------------------------------
#include
#include
struct Date
{
int year;
int month;
int day;
};
int leap(int year)
{
if(year%4==0&&year0!=0 || year@0==0)
return 1;
else return 0;
}
int days(int year ,int month)
{
if(leap(year)&&month==2)
return 29;
if(month==2)
return 28;
if(month==4 || month==6 || month==9 || month==11)
return 30;
return 31;
}
struct Date nextDay(struct Date d)
{
if(d.day==days(d.year,d.month))
{
d.day = 1;
d.month=(d.month)+1;
if(d.month==1) d.year++;
}
else d.day++;
return d;
}
struct Date nextNDay(struct Date d,int n)
{
while(n--)
{
d = nextDay(d);
}
return d;
}
void output(struct Date x)
{
printf("%d-d-d\n",x.year,x.month,x.day);
}
int main()
{
struct Date x,y,z;
printf("请输入一个日期,年 月 日:\n");
scanf("%d%d%d",&x.year,&x.month,&x.day);
printf("当前输入的日期是:\n");
output(x);
y = nextDay(x);
printf("它的下一天是:\n");
output(y);
int n;
printf("请输入一段时间>(天):");
scanf("%d",&n);
z = nextNDay(x,n);
output(z);
return 0;
}
---------------------------------------------------------------
方法二:
---------------------------------------------------------------
#include
#include
struct date
{
int year; //定义天
int month; //定义月
int day; //定义天
};
struct date next_day(struct date in); //声明计算下一天的函数
struct date nextN_day(struct date in, int x); //声明计算N天后日期的函数
void print(struct date in); //声明输入日期的函数
int leap(int x); //声明闰年判断的函数
int main()
{
struct date d;
struct date r;
struct date r1;
int n;
int i;
printf("请输入一个 年 月 日:\n");
scanf("%d %d %d",&d.year, &d.month, &d.day);
printf("您输入的日期是:\n");
print(d);
printf("它的下一天是:\n");
r = next_day(d); //计算下一天日期
print(r);
printf("请输入一个时间长度>(天):");
scanf("%d",&n); //接收天数n
printf("经过%d天是:\n",n);
r1 = nextN_day(d,n); //计算n天后的日期
print(r1);
return 0;
}
int leap(int x)
{
if(x%4 == 0 && x0 != 0 || x@0 == 0) //定义函数判断是否为闰年
return 1; //闰年返回1
else
return 0; //平年返回0
}
struct date next_day(struct date in)
{
int m_day; //定义m_day记录每月天数
struct date r;
switch(in.month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: m_day = 31; break;
case 2: {
if(leap(in.year)) m_day = 29;
else m_day = 28;
}
break; //二月分别按闰年平年计算
case 4:
case 6:
case 9:
case 11: m_day = 30; break; //确定每一个月的天数
}
if(in.day+1 <= m_day)
{
r.year = in.year;
r.month = in.month;
r.day = in.day+1; //如果输入的日期加1不最后一天,那么日期加1
}
if(in.day+1 > m_day && in.month != 12)
{
r.year = in.year;
r.month = in.month+1;
r.day = 1; //如果输入的日期是当月最后一天,而且不是12月,则月份加1,日置为1
}
if(in.month == 12 && in.day == 31)
{
r.year = in.year+1;
r.month = 1;
r.day = 1; //如果输入日期是当年最后一天,则年数加1,月和日置为1
}
return r;
}
struct date nextN_day(struct date in, int x)
{
struct date re = in;
while(x--)
{
re = next_day(re); //通过计算x次下一天的下一天,而最终返回x天后的时间值
}
return re;
}
void print(struct date in)
{
printf("%d-d-d\n",in.year,in.month,in.day); //定义时间输出格式控制函数
}
后N天C语言,c语言计算一个日期的下一天后N天后的日期相关推荐
- c语言标准差怎么计算,一个关于文段统计的问题,怎么在运行过程中计算标准差?...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 $ ./analyse_text Enter your text: Iconic United States attractions The Statue ...
- c语言调用函数计算分段函数值,输入x,计算并输出下列分段函数f(x)的值(保留2位小数) c语言...
计算分段函数输入 x ,计算并输出 y 的值.公式如下 当x >= 0时,f(x) = x^0.5,当x小于0时,f(x #include#include//[1{intmain()//你所写的 ...
- C语言求x和y的乘积,计算方程式,求x,C语言中怎么计算x,y的值?
导航:网站首页 > 计算方程式,求x,C语言中怎么计算x,y的值? 计算方程式,求x,C语言中怎么计算x,y的值? 匿名网友: (x-1)=0吧,写题也这么不仔细呀. 哈哈m/x=n/(x-1) ...
- c语言程序设计常用思维,C语言程序设计中计算思维的思考①
王鑫 李万军 摘 要:计算思维是运用计算机科学的基础概念去求解问题.设计系统和理解人类的行为.本文归纳了计算思维在C语言程序设计中的体现,可归纳为抽象计算思维.自动化计算思维和并行计算思维三种.针 ...
- R语言的导数计算(转)
转自:http://blog.fens.me/r-math-derivative/ 前言 高等数学是每个大学生都要学习的一门数学基础课,同时也可能是考完试后最容易忘记的一门知识. 我在学习高数的时候绞 ...
- r语言 求几个数的最小公倍数_一课研究之“最小公倍数教学后学生知识技能情况分析”(20190417)...
1向你介绍我是谁 大家好,我是忻菁,来自杭州市崇文实验学校,是朱乐平名师工作站"一课研究"团队第十七组组员,很高兴能在"一课研究"微信平台上与您相遇! 2 本期 ...
- c语言sizeof怎么计算字节数,理解c语言的sizeof
c语言有很多用起来需要特别注意的地方,我们(计算机学习微信公众号:jsj_xx)以后会分析其中有使用价值的点.今天我们一起看看sizeof.c语言通过类型长度来达到指针的灵活性,我们觉得,某种意义上讲 ...
- C语言编写程序计算运费:f=p*w*s*(1-d)。(用switch语句实现)
C语言编写程序计算运费:f=pws*(1-d).(用switch语句实现) s<250km 没有折扣 250<=s<500 2%折扣 500<=s<1000 5%折扣 1 ...
- Java语言程序设计(一)计算题
1.观察下面的程序片断,指出其中的父类和子类,以及父类和子类的各个域和方 法. class SuperClass {int data; voidsetData(intnewData) {data=ne ...
最新文章
- 测试驱动开发 测试前移_测试驱动开发简介
- 使用POI创建word表格-在表格单元格中创建子表格
- 信息革命的新世界正在到来,连睡觉都觉得浪费
- 购物小票 FoundPrice.java
- SSM框架中使用Spring的@Transactional注解进行事务管理
- 关于计算机组成的ppt,计算机组成课件.ppt
- AUTOSAR从入门到精通100讲(十五)-AURIX TC3xx MCAL中Link文件解析以及代码变量定位方法详解
- Linux Ubuntu 安装Tomcat 7,亲测有效
- python 获取macd数据_如何通过MACD函数获取MACD的5分钟对应值
- php系统主题,第8章 drupal主题系统
- 边境的悍匪—机器学习实战:第十章 Keras人工神经网络简介
- 仿朋友圈页面(超小白)
- C语言 | 位域的使用详解
- 安卓(调试)有线投屏、wifi投屏到电脑笔记
- 12道Java高级面试题:java时间差计算
- 在discuz论坛增加背景音乐代码
- 奥巴马就海地发生强烈地震发表讲话中英文对照
- linux脚本一般放在哪个目录下,Linux Deepin 将脚本放在个人目录下直接执行
- iphone4 黑机刷6.1.2,保基带激活越狱教程(转)
- 关于No property 属性名 found for type 类名!的问题及解决方式之一