❶ 用c語言編寫程序查詢日期
YMD_2_JD() 計算年月日 是 該年的第幾天。
YMD_2_WeekDay()計算某年月日 是 星期幾,用 WeekDayName[] 顯示星期幾的字元串。
#include<stdio.h>
int YMD_2_JD(int Y, int M, int D){
const short MonthDay[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int JD,i;
JD=D;
for (i=0;i<M;i++) JD+=MonthDay[i];
if (((Y%4==0)&&(Y%100!=0)||(Y%400==0)) && (M>2)) JD++;
return JD;
}
int YMD_2_WeekDay(int Y, int M, int D){
int offset,jd,weekD;
offset = ((Y-1)+(Y-1)/4-(Y-1)/100+(Y-1)/400) % 7 ;
jd = YMD_2_JD(Y,M,D);
weekD = (jd + offset) % 7;
return weekD;
}
char *WeekDayName[]={" ","Mon","Tue","Wen","Thu","Fri","Sat","Sun"};
main(){
int Y,M,D;
printf("input year month day, for example 2015 3 31:\n");
scanf("%d %d %d",&Y,&M,&D);
printf("It is %dth day\n",YMD_2_JD(Y,M,D));
printf("It is %s.\n",WeekDayName[YMD_2_WeekDay(Y,M,D)]);
return 0;
}
❷ 在c語言程序中怎樣計算日期
很煩,你需要知道中間的年份是否為閏年,中間的年份算出來之後,算一下首尾就可以了,總之是閏年的判斷
❸ C語言程序設計 計算日期
#include<stdio.h>
bool isday(int day,int mouth,int year)
{
int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
if((year%400==0)||(year%4==0&&year%100!=0)) a[1]++;
if(day>a[mouth-1]||day<1)
return true;
else
return false;
}
void main()
{
int i,year,mouth,day;
int sum,sign;
int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
do
{
sum=0;sign=0;
puts("請輸入年、月、日:");
scanf("%d%d%d",&year,&mouth,&day);
if(((year%400==0)||(year%4==0&&year%100!=0))&&mouth>2)
{
sum=day+1;//閏年,記得加1
}
else sum=day;
for(i=0;i<mouth-1;i++)
sum+=a[i];
if(year<1||mouth<1||mouth>12||isday(day,mouth,year))
{
puts("輸入錯誤,請重新輸入:");
sign=1;
}
}while(sign);
printf("為第%d天\n",sum);
}
❹ 在c語言程序中如何計算日期
是計算中間間隔的日期嗎?是的話很簡單,規定輸入的格式,然後把年月日什麼的都轉換成最低的單位,兩個日期轉換後相減就可以了。。
❺ 求助,c語言,輸入日期及天數計算新日期,求代碼
#include<stdio.h>
int main()
{ struct date
{ int year,month,day;
} dt;
int i,days,mon[13]= {0,31,28,31,30,31,30,31,31,30,31,30,31};
scanf("%d%*c%d%*c%d,%d",&dt.year,&dt.month,&dt.day,&days);
dt.day+=days;
while(dt.day>mon[dt.month])
{ if(dt.month==2)
mon[2]=28+(dt.year%4==0&&dt.year%100||dt.year%400==0);
dt.day-=mon[dt.month];
if(++dt.month>12)
{ dt.month=1;
dt.year++;
}
}
printf("result:%d-%d-%d ",dt.year,dt.month,dt.day);
return 0;
}
❻ C語言編程求日期
#include<stdio.h>
int main()
{int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int y,m,d,count;
printf("Input y m d:");
scanf("%d%d%d",&y,&m,&d);
printf("Input count:");
scanf("%d",&count);
d+=count;
while(d>a[m])
{if(m==2)
a[2]=28+(y%4==0&&y%100||y%400==0);
d-=a[m++];
if(m>12){m=1;y++;}
}
printf("%d-%d-%d ",y,m,d);
return 0;
}
❼ C語言日期問題
#include<stdio.h>
#include<math.h>
int main()
{
int a[13]={0,31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
char b[8][20]={"www","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};
int x,y,sum=0;//上面兩個數組的a[0],b[0]都是無關量;這是為了讓月數和周數與下標對應;
scanf("%d,%d",&x,&y);
for(int i=1;i<x;i++)
{
sum+=a[i];//求這幾個月的整月天數;
}
sum+=y;//再加上零頭;
sum%=7;//總天數對7求余,余數就當天的星期數;
for(int i=1;i<=7;i++)
{
if(sum+1==i)//因為1月1號是星期二,往後推一天;
printf("%s",b[i]);
}
return 0;
}
希望能幫到你,望採納
❽ C語言求日期
#include<stdio.h>
main()
{
int m[13]={0,,31,28,31,30,31,30,31,31,30,31,30,31},n,i,p=1,q;
scanf("%d%d",&q,&n);
(q%4==0)&&(q%100!=0)||(q%400==0)?m[2]=29:m[2]=28;
for(i=1;i<=12;i++)
{
n=n-m[i];
p++;
if(n<=m[i+1])break;
}
printf("%d\n%d_%d\n",m[2],p,n);
}
❾ 在c語言中如何獲取當前日期
#include <time.h> 要添加這個頭文件。
time_t rawtime;
struct tm * target_time;
time ( &rawtime ); //獲取當前時間,存rawtime里
target_time = localtime ( &rawtime ); //獲取當地時間
利用struct tm,你可以按需取出年月日時分秒星期幾等數值。
---------------------
你的問題:
time_t now;
long int dt=3600; // 時間長度,秒數
now = time (NULL); //獲取當前時間
printf("%s ",ctime(&now)); //直接列印時間
now=now+dt;
printf("%s ",ctime(&now)); // 直接列印加dt後的時間
(當然,你也可以用 ctime(&now) 返回的字元串 通過 MFC 的方法顯示)
❿ 怎麼用C語言輸入一個日期,求該日期是該年的第幾天
我大概給個思路,代碼是現寫的 沒調試
先定義每個月的天數,2月按28天算
輸入年月日後,根據年判斷是否閏年(閏年加1天),再從1月加到當月的前一月,再加上日期就可以了
#include <stdio.h>
int month[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
main()
{int yy,mm,dd, days;
int i;
printf("input year:"); scanf("%d", &yy);
printf("input month:"); scanf("%d", &mm);
printf("input day:"); scanf("%d", &dd);
/* 如果大於2月,要做閏年的判斷,忘了,不一定準 */
if( mm > 2 && ((year%4==0 && year%100!=0) || year%400==0) ) days = 1;
else days = 0;
/* 加上前面各整月的天數 */
for(i = 0; i < mm-1; i++) days += month[i];
/* 加上日數 */
days += dd;
printf("This is the %d day of year %d!!
", days, yy);
}
比如輸入 1999 2 1
應該輸出:This is the 32 day of year 1999!!