① c语言输入年份和天数输出对应的年月日
C语言输入年份和天数输出对应的年月日的源代码如下:
#include<iostream>
intday(int&year,int&month);
intmain()
{
intyear{};
intmonth{};
std::cout<<"请输入年和月(空格隔开):";
std::cin>>year>>month;
std::cout<<"该月天数:"<<day(year,month)<<' ';
return0;
}
(1)c语言天数转换日期扩展阅读
1、C++ 标准库没有提供所谓的日期类型。C++ 继承了 C 语言用于日期和时间操作的结构和函数。为了使用日期和时间相关的函数和结构,需要在 C++ 程序中引用 <ctime> 头文件。
2、有四个与时间相关的类型:clock_t、time_t、size_t和tm。类型 clock_t、size_t 和 time_t 能够把系统时间和日期表示为某种整数。
② 用c语言编写计算两个日期之间的天数
#include <time.h>
#include <stdio.h>
void main()
{
tm t1={0},t2={0};
t1.tm_year = 1999-1900;
t1.tm_mon = 2-1;
t1.tm_mday = 3;
t2.tm_year = 2015-1900;
t2.tm_mon = 5-1;
t2.tm_mday = 4;
time_t a1 = mktime(&t1);
time_t a2 = mktime(&t2);
printf("相差%d天", (a2-a1)/86400);
}
ps:看不懂了再追问
③ 急求!C语言计算天数
#include<stdio.h>
int main()
{
int yyyy,mm,dd,a,b;
scanf("%d/%d/%d",&yyyy,&mm,&dd);
a=31*(mm>1)+28*(mm>2)+31*(mm>3)+30*(mm>4)+31*(mm>5)+30*(mm>6)+31*(mm>7)+31*(mm>8)+30*(mm>9)+31*(mm>10)+30*(mm>11)+dd;
b=((yyyy%4==0)*(yyyy%100!=0)+(yyyy%400==0))*(mm>2);
printf("%d\n",a+b);
return 0;
}
④ C语言显示日期日历转换代码!!急急!!!!!!!
基本上就是这个思想,不太对,你再调试一下吧
#include <stdio.h>
#define YEAR 1970
typedef struct
{
int year;
int month;
int day;
int hour;
int min;
int sec;
} date;
/*储存12个月的天数*/
const int days[12]={31,28,31,30,31,30,31,31,30,31,30,31};
/*判断是否为闰年*/
int isLeapYear(int year)
{
if(((year%4==0)&&(year%100!=0))
||(year%400==0))
{
return 1;
}
return 0;
}
/*日期转成1970年1月1日起的天数*/
long date2sec(date d)
{
long sum=0;
int i;
//累计以往各年的天数
for(i=YEAR;i<d.year;i++)
{
sum+=365;
if(isLeapYear(i))
{//闰年多一天
sum+=1;
}
}
//累计当年以往各月的天数
for(i=0;i<d.month;i++)
{
sum+=days[i];
}
if(d.month>2)
{
if(isLeapYear(i))
{//闰年多一天
sum+=1;
}
}
//累计当年当月的天数
sum+=d.day-1;
//转换成秒
sum=sum*24*60*60;
//加当天的小时,分钟,秒
sum+=d.hour*60*60+d.min*60+d.sec;
//返回总秒数
return sum;
}
/*日期转成1970年1月1日起的天数*/
date sec2date(long sec)
{
date d={YEAR,1,1,0,0,0};
int ds,sum;
ds=sec/(24*60*60);
sec-=ds*(24*60*60);
d.hour=sec/(60*60);
sec-=d.hour*(60*60);
d.min=sec/60;
sec-=d.min*60;
d.sec=sec;
//计算有多少年
while(1)
{
sum=365;
if(isLeapYear(d.year))
{//闰年多一天
sum+=1;
}
if(ds<sum)
{//不足一年了
break;
}
d.year++;
ds-=sum;
}
//计算有多少月
while(1)
{
sum=days[d.month-1];
if(d.month==2)
{
if(isLeapYear(d.year))
{//闰年多一天
sum+=1;
}
}
if(ds+1<sum)
{//不足一月了
d.day+=ds;
break;
}
d.month++;
ds-=sum;
}
return d;
}
main()
{
long sec;
date d;
puts("请输入日期(格式为2008-08-08 08:08:08):");
scanf("%d-%d-%d %d:%d:%d",&d.year,&d.month,&d.day,&d.hour,&d.min,&d.sec);
sec=date2sec(d);
printf("到格林时间%d秒!\n",sec);
puts("请到格林时间的秒数:");
scanf("%d",&sec);
d=sec2date(sec);
printf("日期为:%d-%d-%d %d:%d:%d\n",d.year,d.month,d.day,d.hour,d.min,d.sec);
}
⑤ 用C语言求两个日期之间的天数,急!!
太多地方有问题了 按你的写法给你改了一下 自己比对一下
#include "stdio.h"
#include "conio.h"
void main()
{
int i,y,m1,m2,d1,d2;
int d=0;
scanf("%d,%d,%d,%d,%d",&y,&m1,&d1,&m2,&d2);
y=(y%4==0&&y%100!=0||y%400==0)?1:0;
for(i=m1;i<m2;i++)
switch(i)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
d+=31;
break;
case 4:
case 6:
case 9:
case 11:
d+=30;
break;
case 2:
d=d+28+y;
break;
}
printf("%d",d+d2-d1);
getch();
}
⑥ c语言计算从1月1号到给定日期的天数
#include<stdio.h>
intIsLeapYear(intyear)
{
return((year%4==0)&&(year%100!=0)||year%400==0);
}
intdayOfMonth(intyear,intmonth)
{
intday=0;
switch(month){
case1:
case3:
case5:
case7:
case8:
case10:
case12:
day=31;
break;
case2:
day=28+IsLeapYear(year);
break;
default:
day=30;
break;
}
returnday;
}
intdays(inty,intm,intd)
{
inti,j;
inttotal=0;
for(i=1;i<=y-1;i++)
{
//1.1-12.23
for(j=1;j<=12;j++)
total+=dayOfMonth(i,j);
}
//1-m-1
for(j=1;j<=m-1;j++)
total+=dayOfMonth(y,j);
total+=d;
returntotal;
}
char*month_str={"January","February","March","April",
"May","June","July","August","September","October",
"November","December"};
intmain()
{
intn,i;
intyear=1;//默认是公元1年,需要计算闰年,可以通过输入修改
inta[20][3]={0};
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d%d",&a[i][0],&a[i][1]);
a[i][2]=days(year,a[i][0],a[i][1])-days(year,1,1);
}
printf(" ");
printf("DATE DAYSFROM1JANUARY ");
for(i=0;i<n;i++)
printf("%d%s %d ",a[i][1],month_str[(a[i][0]-1)%12],a[i][2]);
}
⑦ 如何用C语言计算日期间离天数
我学C#、Java的,对C不是很了解,仅仅提供个思路:
请问一下C有没有日期函数?有吧应该?
如果有的话,是不是能返回自1970年1月1日起到你输入的日期的毫秒数呢?
能返回的话,你输入的两个时间都换成毫秒数,一减,得到的不就是两个
日期相差的毫秒数?
然后把毫秒数换算成天数不就成了?
⑧ c语言输入一个天数,输出对应的年月天
#include<stdio.h>
intmain()
{
inti,n=0,year=0,month=0,day=0;
printf("请输入天数<输入-1退出测试>:");
scanf("%d",&n);
while(n!=-1)
{
while(n>=360)
{
n-=360;
year++;
}
while(n>=30)
{
n-=30;
month++;
}
while(n>0)
{
n--;
day++;
}
printf("%d年%d月%d日 ",year,month,day);
year=month=day=0;
printf("请输入天数<输入-1退出测试>:");
scanf("%d",&n);
}
return0;
}
⑨ 用c语言编程计算两个日期之间的天数
直接算两个日期距离公元元年1月1日的天数:
若干个完整的年,若干个完整的月,若干天,加起来之后两个天数相减就行了.
日期的合法性,闰年之类的就不罗嗦了.
⑩ c语言由天数算日期
如果知道一个指定日期以及要求指定天数,以后是什么日期,可以通过计算到当月月末有几天,然后再减去接下来的一个月的天数。逐个月模拟的进行推算。