Ⅰ c語言 輸入一個時間(年、月、日、時、分、秒),判斷時間是否合法,輸出下一秒的時間
#include<stdio.h>
int year = 0;
int month = 0;
int day = 0;
int hour = 0;
int minute = 0;
int second = 0;
int main()
{
void inputDate(); /*輸入年-月-日 時:分:秒*/
void nextSceond(); /*計算下一秒的時間*/
int leapYear(int year); /*判斷是否為閏年*/
int dayMonth(int month); /*返回每個月份對應的天數*/
inputDate();
leapYear(year);
dayMonth(month);
nextSceond();
system("PAUSE");
return 0;
}
/*函數inputDate()輸入年-月-日 時:分:秒*/
void inputDate()
{
int loop;
for(loop = 0; loop < 3; loop++)
{
printf("請輸入年-月-日 時:分:秒:");
scanf("%d-%d-%d %d:%d:%d", &year, &month, &day, &hour, &minute, &second);
if(month < 1 || month > 12)
{
printf(" 月份輸入錯誤! ");
continue;
}
else if(day < 1 || day > dayMonth(month))
{
printf(" 日期輸入錯誤! ");
continue;
}
else if(hour < 0 || hour > 23)
{
printf(" 小時輸入錯誤! ");
continue;
}
else if(minute < 0 || minute > 59)
{
printf(" 分鍾輸入錯誤! ");
continue;
}
else if(second < 0 || second > 59)
{
printf(" 秒數輸入錯誤! ");
continue;
}
else
{
break;
}
}
}
/*函數nextSecond()計算下一秒的時間*/
void nextSceond()
{
if(59 == second)
{
minute += 1;
second = 0;
if(60 == minute)
{
hour += 1;
minute = 0;
if(24 == hour)
{
day += 1;
hour = 0;
if(day > dayMonth(month))
{
month += 1;
day = 1;
if(13 == month)
{
year += 1;
month = 1;
}
}
}
}
}
else
{
second += 1;
}
printf("%d-%d-%d %d:%d:%d ",year, month, day, hour, minute, second);
}
/*函數leapYear(int year)判斷是否為閏年*/
int leapYear(int year)
{
if(0 == (year % 4 && 0 != year % 100) || 0 == year % 400)
{
return 1;
}
else
{
return 0;
}
}
/*函數名dayMonth(int month)返回每個月份對應的天數*/
int dayMonth(int month)
{
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
case 2:
if(0 == (year % 4 && 0 != year % 100) || 0 == year %400)
{
return 29;
}
else
{
return 28;
}
case 4:
case 6:
case 9:
case 11:
return 30;
}
}
請放心使用
有問題的話請追問
滿意請及時採納,謝謝
Ⅱ c語言編程,輸入任意的分鍾數,用小時和分鍾的方式顯示計算旅程時間。
摘要 您好。我是阿梅學姐很高興為您服務,您的問題我已收到,看完會及時回復,追問後,因為單子太多會依次回答,不會不回答的,請耐心等待!
Ⅲ 用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;
}
程序運行結果如下:
(3)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語言;輸入任意年月日,得出周幾
#include"stdio.h"
struct Date
{
int year;
int month;
int day;
};
int f(int x)
{
if(x%4==0&&x%100!=0||x%400==0) return 366;
else return 365;
}
int isleap(int x)
{
if(x%4==0&&x%100!=0||x%400==0) return 1;
else return 0;
}
int s(int a,int b,int c,int d,int year)
{
int array[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};
int cha=0,i;
if(a<c||a==c&&b<d)
{
for(i=a;i<c;i++)
cha+=array[isleap(year)][i-1];
cha+=d-b;
return cha;
}
else
{
for(i=c;i<a;i++)
cha+=array[isleap(year)][i-1];
cha+=b-d;
return -cha;
}
}
int tianshu(struct Date a,struct Date b)//計算兩個日期相差的天數
{
int i,tian=0;
if(a.year<b.year)
{
for(i=a.year;i<b.year;i++)
tian+=f(i);
tian+=s(a.month,a.day,b.month,b.day,b.year);
}
else
{
for(i=a.year;i<b.year;i++)
tian-=f(i);
tian+=s(a.month,a.day,b.month,b.day,b.year);
}
return tian;
}
void jieguo(int a)
{
if(a==0) printf("這一天是星期天\n");
if(a==1) printf("這一天是星期一\n");
if(a==2) printf("這一天是星期二\n");
if(a==3) printf("這一天是星期三\n");
if(a==4) printf("這一天是星期四\n");
if(a==5) printf("這一天是星期五\n");
if(a==6) printf("這一天是星期六\n");
if(a==7) printf("這一天是星期天\n");
}
int main()
{
int tian;
struct Date now={2009,4,12};//選擇一天作為基準
struct Date chaxun;
printf("請輸入你想查詢的日期\n");
scanf("%d%d%d",&chaxun.year,&chaxun.month,&chaxun.day);
tian=tianshu(now,chaxun);
if(tian>=0)
{
jieguo(tian%7);
}
else
{
jieguo(7-((-tian)%7));
}
return 0;
}
Ⅳ c語言中這么輸入一個時間數據,用漢字表示輸出時間
#include <stdio.h>
#include <windows.h>
int main()
{
SYSTEMTIME Stime,Etime;
GetLocalTime(&Stime);//取得開始計時時間
Sleep(5000);//停5秒
Ⅵ 用C語言編寫一個程序輸出任意時間下一秒的時間
#include "stdio.h"
#include "conio.h"
int main(void)
{
int s;
int f;
int m;
printf("請輸入一個時間: ");
scanf("%i %i %i",&s,&f,&m);
if(m==59){
m=0;
f=f++;
printf("%i %i %i ",s,f,m);
}else {
m=m++;
printf("%i %i %i ",s,f,m);
}
getch();
}
或:
#include <stdio.h>
#include <time.h>
int main(void)
{
int i=123456789;
clock_t start, end;
start = clock();
while(i--);
end = clock();
printf("The time was: %d ", (end - start));//單位是毫秒,注意是%d,不再是%f
printf("The time was: %f ", (double)(end - start) / CLK_TCK); //單位是秒
return 0;
}
(6)c語言可以隨意輸入時間嗎擴展閱讀:
C的數據類型包括:整型(short,int,long,long long)、字元型(char)、實型或浮點型(單精度float和雙精度double)、枚舉類型(enum)、數組類型、結構體類型(struct)、共用體類型(union)、指針類型和空類型(void)。
變數是以某標識符為名字,其值可以改變的量。標識符是以字母或下劃線開頭的一串由字母、數字或下劃線構成的序列,請注意第一個字元必須為字母或下劃線,否則為不合法的變數名。變數在編譯時為其分配相應存儲單元。
Ⅶ c語言中時間怎麼輸入
Sleep()//可以用這個函數,是暫時執行...()內為要暫停的時間,Sleep(500)為0.5秒
Ⅷ C語言,計算旅途的時間,輸入任意時間~找錯~麻煩大仙了
#include<stdio.h>
#include<iostream.h>
int main()
{
int time1,time2,hours,mins;
int h1,h2,m1,m2;
printf("請輸入兩個時間\n");
scanf("%d%d",&time1,&time2);
h1=time1/60;
h2=time2/60;
m1=time1%60;
m2=time2%60;
if(h1>h2)
{
if(m1<m2)
{
hours=h1-h2-1;
mins=m1-m2+60;
}
else
{
hours=h1-h2;
mins=m1-m2;
}
}
else
{
if(m1>m2)
{
if(h1==h2)
{
hours=h2-h1,mins=m1-m2;
}
else
{
hours=h2-h1-1,mins=m2-m1+60;
}
}
else
{
if(h1==h2)
{
hours=h2-h1,mins=m2-m1;
}
else
{
hours=h2-h1,mins=m2-m1;
}
}
}
printf("%d,%d\n",hours,mins);
system("pause");
return 0;
}
樓主你看看,差點被你誤導了,是除以60,不是100!!!!
Ⅸ C語言怎麼輸入日期求大神指導!
scanf("%d-%d-%d", &y, &m, &d);
printf("%d/%d/%d\n", y, m, d);
Ⅹ 關於C語言中,如何對時間進行輸入,處理和輸出。
#include <stdio.h>
#include <windows.h>
int main()
{
SYSTEMTIME Stime,Etime;
GetLocalTime(&Stime);//取得開始計時時間
Sleep(5000);//停5秒
GetLocalTime(&Etime);//結束計時時間
//結束減去開始就是間隔了
printf("間隔:%d分%d秒\n",Etime.wMinute-Stime.wMinute,Etime.wSecond-Stime.wSecond);
return 0;
}//本程序是調用WindowsAPI實現的