當前位置:首頁 » 編程語言 » c語言天數轉換日期
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言天數轉換日期

發布時間: 2022-02-09 15:53:37

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語言由天數算日期

如果知道一個指定日期以及要求指定天數,以後是什麼日期,可以通過計算到當月月末有幾天,然後再減去接下來的一個月的天數。逐個月模擬的進行推算。