用c语言编写一个计算两个日期之间相差天数的小程序。语法尽量简单,... 用c语言编写计算两个日期之间相差的天数,并用万年历的形式输出...

\u8fd9\u662f\u6211\u5199\u7684c\u8bed\u8a00\u8ba1\u7b97\u4e24\u4e2a\u65e5\u671f\u4e4b\u95f4\u7684\u5929\u6570\u7684\u7a0b\u5e8f\uff0c\u6c42\u6307\u6559\u600e\u4e48\u9519\u7684\uff1f

\u3000\u3000\u62b1\u6b49\uff0c\u4f60\u7684\u4ee3\u7801\u98ce\u683c\u5b9e\u5728\u662f\u8ba9\u6211\u770b\u4e0d\u4e0b\u53bb\u3002\u8fd9\u6837\u7684\u4ee3\u7801\u4f30\u8ba1\u8fc7\u51e0\u5929\u4f60\u81ea\u5df1\u90fd\u770b\u4e0d\u61c2\u4e86\u3002\u51fd\u6570\u547d\u540d\u548c\u53d8\u91cf\u547d\u540d\u4e00\u5b9a\u8981\u6709\u610f\u4e49\uff0c\u867d\u7136\u4e0d\u4e00\u5b9a\u7b80\u6d01\uff0c\u4f46\u53ef\u8bfb\u6027\u4e00\u5b9a\u8981\u597d\uff0c\u8fd9\u6837\u5c31\u7b97\u9519\u4e86\u8c03\u8bd5\u4e5f\u65b9\u4fbf\u3002\u6211\u81ea\u5df1\u5199\u4e86\u4e00\u4e2a\u7c7b\u4f3c\u7684\u7a0b\u5e8f\uff0c\u4f60\u770b\u770b\u662f\u4e0d\u662f\u4f60\u60f3\u8981\u7684\u3002\u4e0a\u4ee3\u7801(\u8fd9\u7f51\u9875\u4e0a\u7684\u6392\u7248\u4e0d\u4f1a\u641e\uff0c\u4f60\u590d\u5236\u5230\u81ea\u5df1\u7684\u7f16\u8bd1\u73af\u5883\u91cd\u65b0\u6392\u7248\u4e0b\u5427)\uff1a
#include "stdafx.h" //\u8fd9\u91cc\u9762\u5565\u4e5f\u6ca1\u6709\uff0c\u5c31\u4f5c\u4e3a\u4e00\u4e2a\u9884\u7f16\u8bd1\u5934#include #include #include bool IsLeapYear(UINT uYear){ return (0 == uYear % 4 && 0 != uYear % 100) || (0 == uYear % 400);}UINT GetTotalDayOfMonth(UINT uYear, UINT uMonth){ if (uMonth > 12 || uMonth 0 && uDay = 2 && IsLeapYear(uYear)) { ++uResult; } while (uMonth uEndYear) { lResult *= -1; } lResult += (GetDaysOfYear(uBigYear, uBeginMonth, uBeginDay) - GetDaysOfYear(uBigYear, uEndMonth, uEndDay)); printf("\u76f8\u5dee\u5929\u6570\u4e3a\uff1a%d", lResult); system("pause"); return 0;}\u3000\u3000

\u4f60\u597d\uff01\u4e24\u4e2a\u65e5\u671f\u90fd\u662f\u8f93\u5165\u540e\u8ba1\u7b97\u5417

//May 05 2015 By 12052010 测试通过,望采纳 
#include<stdio.h>
 
//判断闰年,如果是闰年返回1,否则返回0 
int isYear(int year){

return (year%4==0)&&( year %400==0 || year %100!= 0) ? 1:0;
}

//返回该年 year 该月 month 的最大天数 
int getDayOfMonth(int year , int month) {

int dayArr[] = {0,31,28,31,30,31,30,31,31,30,31,30,31};

return (month == 2 && isYear(year)==1) ? dayArr[month]+1 : dayArr[month] ;
}

//获取两个日期之间的天数,第一个日期必须比第二个日期小  :) 
int getTotalDay(int year1,int month1,int day1,int year2,int month2,int day2){

long total = 0;

for(int year = year1; year < year2 ;  year ++ ){
total = total + 365;
if(isYear(year)==1)
total ++;
}

for(int month =1; month < month2; month ++ ){
total = total + getDayOfMonth(year2,month);
}

total = total + day2;

for(int month=1 ; month < month1; month ++ ){
 total = total - getDayOfMonth(year1,month);
}

return total - day1;

}

int main(){

int year1 ,month1,day1;
int year2, month2,day2;

do{//控制日期输进合法,同时year1应该小于year2 
printf("
Input year1-month1-day1
(such as 2012-12-12) : ");
scanf("%d-%d-%d", &year1,&month1,&day1);
} while( year1 <0 || month1<1 || month1>12 || day1<1|| day1> getDayOfMonth(year1,month1));


do{//控制日期输进合法 
printf("


Input year2-month2-day2
(such as 2014-12-12) : ");
scanf("%d-%d-%d", &year2,&month2,&day2);
} while( year2 <0 || year2 <year1|| month2<1 || month2>12 || day2<1|| day2> getDayOfMonth(year2,month2));



printf("
Between two date have: %ld  days 


", getTotalDay(year1,month1,day1,year2,month2,day2));
return 0;
}


  • 鐢╟璇█缂栧啓涓涓绠椾袱涓棩鏈涔嬮棿鐩稿樊澶╂暟鐨勫皬绋嬪簭銆傝娉曞敖閲忕畝鍗...
    绛旓細dayArr[month]+1 : dayArr[month] ;}//鑾峰彇涓や釜鏃ユ湡涔嬮棿鐨勫ぉ鏁帮紝绗涓涓鏃ユ湡蹇呴』姣旂浜屼釜鏃ユ湡灏 锛) int getTotalDay(int year1,int month1,int day1,int year2,int month2,int day2){long total = 0;for(int year = year1; year < year2 ; year ++ ){total = total + 365;...
  • 缁欏畾骞存湀鏃 鎬庢牱鐢–璇█缂栫▼璁$畻2涓棩鏈涔嬮棿鐨勬椂闂村ぉ鏁
    绛旓細if (((Y%4==0)&&(Y%100!=0)||(Y%400==0)) && (M>2)) JD++;return JD;} 鏁村勾鐨勫ぉ鏁帮紝娑夊強闂板勾鐨勫垽鏂細鏌愬勾鏄惁闂板勾锛岀敤 (Y%4==0)&&(Y%100!=0)||(Y%400==0) 鍒ゆ柇銆傞棸骞366澶╋紝骞冲勾365澶┿ 鏈変簡杩欎簺锛鍐绋嬪簭涓嶉毦銆傛湭鑰冭檻鍏厓鍓嶇殑骞存湀鏃璁$畻銆
  • 杩欐槸鎴鍐鐨c璇█璁$畻涓や釜鏃ユ湡涔嬮棿鐨勫ぉ鏁扮殑绋嬪簭,姹傛寚鏁欐庝箞閿欑殑?_鐧 ...
    绛旓細return uDays[uMonth - 1] + (IsLeapYear (uYear) && 2 == uMonth ? 1 : 0);}bool IsCorrectInput(UINT uYear, UINT uMonth, UINT uDay){ UINT uTotalDayOfMonth = GetTotalDayOfMonth(uYear, uMonth); return (0 != uTotalDayOfMonth && uDay > 0 && uDay <= uTotalDayOf...
  • 鐢╟璇█琛ㄨ揪:姹備袱涓棩鏈涔嬮棿鏈夊灏戝ぉ?杈撳叆1900 1 1鍒3000 12 31鏃惰宸...
    绛旓細鍙互杩欐牱鍋氾細缂栧啓涓涓眰浠1.1.1鍒皔.m.d鐨勬诲ぉ鏁扮殑鍑芥暟锛堟瘮濡 int days(int,int,int)锛夛紝鐒跺悗璋冪敤杩欎釜鍑芥暟鍗冲彲銆傚墠鐪嬩笅闈㈢▼搴忥細include <stdio.h> int days(int y,int m,int d); /* 姹1.1.1~y.m.d鐨勫ぉ鏁 */ inline int isleap(int y); /* 鍒ゆ柇y骞存槸鍚﹂棸骞 */ void main(){ ...
  • 鐢╟璇█缂栧啓涓涓鑳璁$畻涓や釜鏃ユ湡涔嬮棿鐩稿樊澶氬皯澶!(涓嶈法骞) 璇翠竴涓嬭绠...
    绛旓細31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366 } };int rtc_year_days(unsigned int day, unsigned int month, unsigned int year){ return rtc_ydays[LEAP_YEAR(year)][month] + day-1;} 娉ㄩ噴锛氱敤rtc_year_days鍑芥暟绠楀嚭涓や釜鏃ユ湡鍚勮嚜涓轰粖骞寸殑绗嚑澶╋紝鐩稿噺鍗冲彲銆
  • C璇█缂栫▼:瀹氫箟涓涓缁撴瀯浣撶敤浜庡瓨鍌ㄥ勾銆佹湀銆佹棩鏁版嵁,骞跺畾涔変竴涓嚱鏁扮敤浜庢眰...
    绛旓細{return year % 400 == 0 || (year % 100 && year % 4 == 0);}int DateDistace(Date a, Date b){if (DateCmp(a, b))//淇濊瘉a灏忎簬b{Date t = b;b = a;a = t;}//璁$畻缁撴灉瀛樺偍鍦╮es涓//棣栧厛璁$畻鐩稿樊鐨勫勾int i = a.year + 1, j = b.year - 1, res = a....
  • C璇█+浠m/dd/yyyy鐨勬牸寮忚緭鍏涓ゆ棩鏈,鍒ゆ柇涓や釜鏃ユ湡澶у皬骞舵寜鍗囧簭杈撳嚭...
    绛旓細浠ヤ笅鏄涓涓狢璇█绋嬪簭锛屽彲浠ュ疄鐜颁互mm/dd/yyyy鐨勬牸寮忚緭鍏涓や釜鏃ユ湡锛屽垽鏂畠浠殑澶у皬锛屽苟鎸夊崌搴忚緭鍑恒cCopy code#include <stdio.h>int main(){ int month1, day1, year1; int month2, day2, year2;// 杈撳叆绗竴涓棩鏈 printf("Enter date in mm/dd/yyyy format: "); scanf("%d/...
  • C璇█缂栫▼ 姹楂樻墜 棰樼洰:浠绘剰杈撳叆涓や釜鏃ユ湡,璁$畻涓や釜鏃ユ湡涔嬮棿鐨勫ぉ鏁
    绛旓細灞閮ㄥ彉閲忎細灞忚斀鎺夊悓鍚嶇殑鍏ㄥ眬鍙橀噺 鎵浠ワ細鍏堣皟鐢 fun 杈撳嚭 鍑芥暟鍐 灞閮ㄥ彉閲廰鐨勫5 鍐嶈緭鍑簃ain鍑芥暟鍐呭眬閮ㄥ彉閲 b鐨勫5 閫鍑篺un鍑芥暟 fun鍑芥暟鍐呯殑灞閮ㄥ彉閲廰 鐢熷懡鏈 缁撴潫 鍐峱rinft 鎵撳嵃鐨刟鐨勫煎氨鏄叏灞鍙橀噺a 鐨勫间簡锛岃宐杩樻槸main鍑芥暟鐨勫眬閮ㄥ彉閲 鎵浠 杈撳嚭鏄 5,5,0,5 ...
  • C璇█涓 姹備袱涓棩鏈闂寸殑澶╂暟
    绛旓細浠ュ墠鍋鐨C璇█瀹炰範浣滀笟...瑕佹妸骞淬佹湀銆佹棩鍒嗗紑鏉ユ眰...include <stdio.h> int mon[12]={31,28,31,30,31,30,31,31,30,31,30,31}; /*鍌ㄥ瓨12涓湀鐨勫ぉ鏁*/ void main(){ int spec_year(int);void scan(int *year,int *month,int *day);long com_year(int y1,int y2);int...
  • 姹侰璇█楂樻墜甯垜缂栦笅杩欏嚑涓▼搴忋
    绛旓細鐢–璇█璁捐涓涓绋嬪簭璁$畻涓や釜缁欏畾鏃ユ湡涔嬮棿鎵鍖呮嫭鐨勫畬鏁存湀浠芥暟銆傚皢璁$畻鐨勫勾鏁板拰 瀹屾暣鏈堜唤杈撳嚭銆傝鏄庯紝瑙勫畾涓や釜鐩搁偦骞翠唤鐨勫悓鏈堝悓鏃ヤ箣闂寸殑闂撮殧涓轰竴骞淬備緥濡傦紝2007.11.30鈥2008.11.30鏃堕棿闂撮殧涓轰竴骞达紝鑻ョ浉閭讳袱骞翠腑鍓嶄竴骞存槸闂板勾锛屽苟涓斿鏈熶负2鏈29锛屽垯鍒颁笅涓骞寸殑2鏈28鏃ヤ负涓骞达紝鍗2008.2.29鈥2009.2.28...
  • 扩展阅读:初学编程必背50个 ... c语言必背100代码 ... 编程必背100个代码 ... c语言编程计算时间差 ... c语言由日期计算天数 ... c语言年月日计算日期 ... c++编写简单计算器 ... 两个数的简单计算器 c语言 ... 输入日期自动计算天数c语言 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网