❶ 用c語言編程,輸入一個日期,系統輸出第二天的日期。求解。
//輸入年月日,再輸入天數,求這些天之後的日期是多少
#include
<stdio.h>
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("輸入年月日\n");
scanf("%d%d%d",&year,&month,&day);
//printf("輸入天數\n");
//scanf("%d",&n);
n=1;
if(year<0||month<0||month>12||day<1||n<0)
{
printf("輸入數據錯誤\n");
return
1;
}
daytemp=day+n;//累加天數
if((year%4==0&&year%100!=0)||year%400==0)//閏年置1
flag=1;
if(day>s[flag][month])
{
printf("輸入日期與年月不符.\n");
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天後是:\n",year,month,day,n);
printf("%d年%d月%d日\n",nyear,nmonth,nday);
return
0;
}
❷ C語言 輸出日期
使用time函數。 time Defined in header time_t time( time_t *time ); Returns the current calendar time encoded as a time_t object. Parameters time - pointer to a time_t object to store the time in or NULL Return value Current cal.
❸ c語言如何輸出當前的日期和時間
#include<stdio.h>
#include<time.h>
intmain()
{
time_tt;//time_t是一種類型,定義time_t類型的t
time(&t);//取得當前時間
printf("%s ",ctime(&t));//ctime(&t)將日期轉為字元串並列印
return0;
}
❹ c語言輸出年月日
下面是這段代碼,配合注釋體會一下吧
#include <stdio.h>
void MonthDay(int year,int yearDay,int *pMonth,int *pDay);
int main()
{
int year,yearDay,month,day;
scanf("%d%d",&year,&yearDay);//輸入年份和天數
MonthDay(year,yearDay,&month,&day);
printf("%d-%d-%d",year,month,day);
return 0;
}
void MonthDay(int year,int yearDay,int *pMonth,int *pDay)
{
int days[12]={31,28,31,30,31,30,31,31,30,31,30,31};//這個數組保存每月的天數
if(year%4==0&&year%100!=0||year%400==0)//判斷是否為閏年
days[1]=29;//閏年的二月有29天
*pMonth=1;//從一月開始看
while(yearDay>days[*pMonth-1])//如果哪一天超出這個月
{
yearDay-=days[*pMonth-1];//求出超出此月的天數
(*pMonth)++;//繼續考慮下一月
}
*pDay=yearDay;
}
❺ c語言輸出明天日期
if (days >maxdays - 1)
這句,maxdays是個數組,所以maxdays其實是個地址,。。
❻ C語言編程~輸入今天的日期輸出明天的日期
因為明天的日期與月份及年度有關系,所以你的日期應該是time_t或tm類型的.如果是tm類型的,則用mktime將它轉為time_t類型,再用下面法計算一下:structtm*ptm;time_tnow=time(0);now+=24L*3600;ptm=localtime(&now);
❼ 在c語言中如何使用系統函數得到當前的日期
獲得日期和時間
這里說的日期和時間就是我們平時所說的年、月、日、時、分、秒等信息。從第2節我們已經知道這些信息都保存在一個名為tm的結構體中,那麼如何將一個日歷時間保存為一個tm結構的對象呢?
其中可以使用的函數是gmtime()和localtime(),這兩個函數的原型為:
struct
tm
*
gmtime(const
time_t
*timer);
struct
tm
*
localtime(const
time_t
*
timer);
其中gmtime()函數是將日歷時間轉化為世界標准時間(即格林尼治時間),並返回一個tm結構體來保存這個時間,而localtime()函數
是將日歷時間轉化為本地時間。比如現在用gmtime()函數獲得的世界標准時間是2005年7月30日7點18分20秒,那麼我用
localtime()函數在中國地區獲得的本地時間會比世界標准時間晚8個小時,即2005年7月30日15點18分20秒。下面是個例子:
#include
"time.h"
#include
"stdio.h"
int
main(void)
{
struct
tm
*local;
time_t
t;
t=time(NUL);
local=localtime(&t);
printf("Local
hour
is:
%d\n",local->tm_hour);
local=gmtime(&t);
printf("UTC
hour
is:
%d\n",local->tm_hour);
return
0;
}
運行結果是:
Local
hour
is:
15
UTC
hour
is:
7
固定的時間格式
我們可以通過asctime()函數和ctime()函數將時間以固定的格式顯示出來,兩者的返回值都是char*型的字元串。返回的時間格式為:
星期幾
月份
日期
時:分:秒
年\n{post.content}
例如:Wed
Jan
02
02:03:55
1980\n{post.content}
其中\n是一個換行符,{post.content}是一個空字元,表示字元串結束。下面是兩個函數的原型:
Char
*
asctime(const
struct
tm
*
timeptr);
char
*
ctime(const
time_t
*timer);
其中asctime()函數是通過tm結構來生成具有固定格式的保存時間信息的字元串,而ctime()是通過日歷時間來生成時間字元串。這樣的
話,asctime()函數只是把tm結構對象中的各個域填到時間字元串的相應位置就行了,而ctime()函數需要先參照本地的時間設置,把日歷時間轉
化為本地時間,然後再生成格式化後的字元串。在下面,如果t是一個非空的time_t變數的話,那麼:
printf(ctime(&t));
等價於:
struct
tm
*ptr;
ptr=localtime(&t);
printf(asctime(ptr));
那麼,下面這個程序的兩條printf語句輸出的結果就是不同的了(除非你將本地時區設為世界標准時間所在的時區):
#include
"time.h"
#include
"stdio.h"
int
main(void)
{
struct
tm
*ptr;
time_t
lt;
lt
=time(NUL);
ptr=gmtime(<);
printf(asctime(ptr));
printf(ctime(<));
return
0;
}
運行結果:
Sat
Jul
30
08:43:03
2005
Sat
Jul
30
16:43:03
2005
❽ c語言如何按照日期區間輸出
函數按照參數fmt所設定格式將time類型的參數格式化為日期時間信息。
C語言是一門面向過程的、抽象化的通用程序設計語言,廣泛應用於底層開發。C語言能以簡易的方式編譯、處理低級存儲器。
C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言,盡管C語言提供了許多低級處理的功能,但仍然保持著跨平台的特性,以一個標准規格寫出的C語言程序可在包括類似嵌入式處理器以及超級計算機等作業平台的許多計算機平台上進行編譯。
C語言發展歷史。
C語言是一門面向過程的計算機編程語言,與C++、C、Java等面向對象編程語言有所不同。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、僅產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
當前階段,在編程領域中,C語言的運用非常之多,它兼顧了高級語言和匯編語言的優點,相較於其它編程語言具有較大優勢,計算機系統設計以及應用程序編寫是C語言應用的兩大領域。
❾ C語言輸出昨天日期
#include<stdio.h>
typedefstruct{
intyear;
intmonth;
intday;
}Date;
intmain(void)
{
Datetoday,yesterday;
printf("inputthedate(eg.2014-5-20): ");
scanf("%d-%d-%d",&today.year,&today.month,&today.day);
intstandard_day[12]={31,28,31,30,31,30,31,31,30,31,30,31};//非閏年每月份的天數
if((today.year%4==0&&today.year%100!=0)||(today.year%400==0))
standard_day[1]+=1;//表示如果是閏年,二月份為29天
if(today.year<0||
today.month<0||today.month>12||
today.day<0||today.day>standard_day[today.month-1])//判斷輸入是否有誤
{
printf("theinputdateisERROR! ");
return0;
}
if(today.day==1)//如果日期是1號
{
if(today.month==1)//如果月份是1月,年-1,月為12,天為31
{
yesterday.year=today.year-1;
yesterday.month=12;
yesterday.day=standard_day[11];
}
else//如果不是12月
{
yesterday.year=today.year;
yesterday.month=today.month-1;
yesterday.day=standard_day[today.month-1-1];
}
}
else//正常日期,年月不變,天-1
{
yesterday.year=today.year;
yesterday.month=today.month;
yesterday.day=today.day-1;
}
printf("Yesterdayis: %04d-%02d-%02d ",yesterday.year,yesterday.month,yesterday.day);//輸出結果
return0;
}
❿ 用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;
}
程序運行結果如下:
(10)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;
}