当前位置:首页 » 编程语言 » c语言年月日
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言年月日

发布时间: 2022-02-04 01:02:19

Ⅰ 用c语言从键盘任意输入一个日期(年月日),输出第二天的日期(年月日)。

源程序如下:

#include "pch.h"

#define _CRT_SECURE_NO_WARNINGS

#include <iostream>

using namespace std;

int main()

{

int s[2][13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31,

0,31,29,31,30,31,30,31,31,30,31,30,31, };

int year = 0;

int month = 0;

int day = 0;

int n, i, daytemp;

int flag = 0;

int nyear = 0, nmonth = 0, nday = 0;

printf("输入年月日 ");

scanf("%d%d%d", &year, &month, &day);

//printf("输入天数 ");

//scanf("%d",&n);

n = 1;

if (year < 0 || month < 0 || month>12 || day < 1 || n < 0)

{

printf("输入数据错误 ");

return 1;

}

daytemp = day + n;//累加天数

if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)//闰年置1

flag = 1;

if (day > s[flag][month])

{

printf("输入日期与年月不符. ");

return 1;

}

if (daytemp <= s[flag][month])//当前日期加天数在本月

{

nyear = year;

nmonth = month;

nday = daytemp;

}

else

{

i = month;

nyear = year;

while (daytemp > s[flag][i])//循环递减,直到当前日期加天数在本月

{

daytemp = daytemp - s[flag][i];

i++;

if (i > 12)//超过一年,年累加

{

nyear++;

if ((nyear % 4 == 0 && nyear % 100 != 0) || nyear % 400 == 0)

flag = 1;

else

flag = 0;

i = i - 12;

}

}

nmonth = i;

nday = daytemp;

}

printf("%d年%d月%d日第%d天后是: ", year, month, day, n);

printf("%d年%d月%d日 ", nyear, nmonth, nday);

return 0;

}

程序运行结果如下:



(1)c语言年月日扩展阅读:

其他实现方式:

int monthsize(int year, int month) {

int days;

if (month == 2) {

if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)

return 29;

return 28;

}

switch (month) {

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:days = 31; break;

case 4:

case 6:

case 9:

case 11: days = 30; break;

}

return days;

}

int main()

int year, month, day, days;

printf("年 月 日:");

while (scanf("%d%d%d", &year, &month, &day) == 3) {

days = monthsize(year, month);

if (days == day) {

if (month == 12) {

++year;

month = 1;

day = 1;

}

else ++month;

}

else ++day;

printf("第二天是:%d/%02d/%02d ", year, month, day);

printf("年 月 日(q to quit):");

}

return 0;

}

Ⅱ c语言年月日计算

首先,你的闰年判断就有问题。教你个口诀:“四年一润,一百年不润,四百年再润”。

其实就可以用if(yr%4==0||yr%100!=0&&yr%400==0){那么是闰年}

你的检验判断也可以利用mont数组的,首先判断是不是在闰年,然后判断输入days是不是大于的mont[mn](如果是闰年要判断二月+1)。

Ⅲ C语言编写 输入 年 月 日 ,输出这个日期的下一天的日期

利用C标准函数time,localtime,mktime来实现
先将输入的年月日放到tm结构中
用mktime()函数生成一个整数
用这个整数+86400(24*60*60)
然后再转换成日期就OK了

Ⅳ C语言输出用户输入的年月日

void main()
{
int day;
int year;
char month[3];

scanf("%d,%s,%d",&day,&month,&year);
printf("%d,%s,%d",&day,&month,&year);

}

Ⅳ C语言中如何把月日年输出为年月日

这要看原来的程序中,月日年是怎么组织的?如果分别存放在三个变量中,那么只要把这三个变量的输出顺序交换一下就可以了。
例如,
int y,m,dm,d;
printf("请输入月 日 年:");
scanf("%d%d%d",&m,&d,&y);
printf("%d年%d月%d日",y,m,d);

Ⅵ C语言 日期(年月日 ) 排序

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
/*
一月 Jan. January
二月 Feb. February
三月 Mar. March
四月 Apr. April
五月 May. May
六月 June. June
七月 July. July
八月 Aug. Aguest
九月 Sept. September
十月 Oct. October
十一月 Nov. November
十二月 Dec. December
缩写:正规的英语中六月、七月不缩写,九月的缩写是4个字母,其他月份3个字母。
*/
char strm[12][10]={"Jan","Feb","Mar","Apr","May","June","July","Aug","Sept","Oct","Nov","Dec"};
struct Date
{
int y,d;
char m[10];
int value;
}d[10000];
int findm(char m[])
{
int i;
for(i=0;i<12;i++)
if(strcmp(m,strm[i])==0)return i;
return -1;
}
bool cmp(Date a,Date b)
{
return a.value<b.value;
}
int main()
{
int n=3,i,j;
/*
3
00 Jan 11
99 Feb 22
08 Mar 02
*/
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d%s%d",&d[i].y,d[i].m,&d[i].d);
j=findm(d[i].m);
d[i].value=d[i].y*10000+j*100+d[i].d;
}
sort(d,d+n,cmp);
for(i=0;i<n;i++)
{
printf("%02d %s %02d\n",d[i].y,d[i].m,d[i].d);
}
return 0;
}

Ⅶ C语言输入年月日计算该日是该年第几天,

你这里面有好几处问题:
1、for (i=1;i<month;i++),注意C语言的下标是从0开始,应该改为for (i=0;i<month-2;i++)
2、a=a+b[i];你这里的变量a没有初始化为0,应该int a=0;
3、sumupDays=isLeapYear(year)+day+a;如果是闰年的一月和二月,也没必要多加一天;应该先判断月份是否大于2;
4、判断闰年的函数int isLeapYear(int year)貌似也不对,应该是
int isLeapYear(int year)
{ int leap;
if ((year%4=0) && (year%100!=0)) //能被4整除而不能被100整除
leap=1;
else if(year%400=0) //能被400整除
leap=1;
else leap=0;
return(leap);
}

Ⅷ C语言中输入年月日,判断这一天是一年的第几天……

以2月10日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。

源代码:

#include "stdio.h"

#include "stdlib.h"

int main()
{
int day,month,year,sum,leap;

printf(" please input year,month,day ");

scanf("%d,%d,%d",&year,&month,&day);

switch(month) /*先计算某月以前月份的总天数*/
{
case 1:sum=0;break;

case 2:sum=31;break;

case 3:sum=59;break;

case 4:sum=90;break;

case 5:sum=120;break;

case 6:sum=151;break;

case 7:sum=181;break;

case 8:sum=212;break;

case 9:sum=243;break;

case 10:sum=273;break;

case 11:sum=304;break;

case 12:sum=334;break;
default:printf("data error ");break;
}
sum=sum+day; /*再加上某天的天数*/

if(year%400==0||(year%4==0&&year%100!=0)) /*判断是不是闰年*/
{
leap=1;
}
else
{
leap=0;
}

if(leap==1&&month>2) /*如果是闰年且月份大于2,总天数应该加一天*/
{
sum++;
}
printf("It is the %dth day. ",sum);
return 0;
}

输出

please input year,month,day

2019,02,10

It is the 41th day.

(8)c语言年月日扩展阅读

c语言编写程序根据输入的时间分别输出问候语

#include <stdio.h>
int main()
{
int a;
printf("请输入时间,例如:17");

scanf("%d",&a);

if(a<=12&&a>=0) printf("早");

else if(a>12&&a<=14) printf("午");

else printf("晚");

printf("%d",s);

return 0;

Ⅸ C语言年月日一年中第几天

首先,定义一个数组,数组里面有12个数据,对应每个月有多少天,
比如{31,28,31,30……}
然后当拿到输入的年月日的时候,判断当前年份是否为润年,
如果是闰年的话,改变一下2月的天数
然后在判断月份
比如是5月份
那就for循环那个数组4次
数组里面的数据相加
然后在加上日期就好了
额,因为我是oc的,C语音基础不是很好,
不过大概就是这个思路……

Ⅹ C语言 年月日

定义个结构数组,分别保存年月日
两个变量,一个保存生日一个保存当前日期
然后两个变量相减