مشاهده نسخه کامل
: درخواست کد برنامه نویسی
irwizards
14-02-2011, 23:15
سلام به دوستان و اساتید محترم!
دنبال کد برنامه نویسی به زبان c میگردم به طوری که برنامه ۲ تا تاریخ میلادی (مثلا: 29/02/2011 و 05/08/2010) را میگیرد و تفاوت تعداد روزهای این ۲تاریخ را به عنوان خروجی به کاربر ارايه میکند.
خیلی ممنون میشم اگر منو یاری کنید.
مرسی
irwizards
18-02-2011, 17:13
دوستان کسی نمیتونه کمکم کنه؟!
۴۵ تا بازدید کننده داشته اما جوابی نگرفتم!
منظورتون تعداد روز های بین این دو تاریخ هست؟
اگه منظورتون اینه که خیلی سادست و 1 خط کده:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
یادم رفت بگم، تاریخ ها هم از نوع DateTime.
MosaferJade
21-02-2011, 15:44
سلام به زبان C# برات می نویسم
int f(DateTime a, DateTime b)
{
if (a.Year == b.Year)
return Math.Abs(a.DayOfYear - b.DayOfYear);
else
{
int p = Math.Abs(a.Year - b.Year);
p = (p - p % 4) / 4 + p * 365;
p += Math.Abs(a.DayOfYear - b.DayOfYear);
return p;
}
}
BeeperMan
04-03-2011, 23:49
من برات به زبان c میگم امید وارم کمکت کنه.
bool isLeap(const int y)
{
if(y%400==0)return 1;
if(y%100!=0 && y%4==0)return 1;
return 0;
}
// calculate the number of days passed since 801-1-1 Miladi
bool MDate2Num(int y,int m,int d,int &pd)
{
int MMonth[]={31,28,31,30,31,30,31,31,30,31,30,31};
pd=0;
ASSERT(y>=801);
if(y<801)return 0;
if(isLeap(y)) MMonth[1]++;
y-=801;
ASSERT(m>=1&&m<=12);
if(m<1||m>12) return 0;
m--;
ASSERT(d>=1&&d<=MMonth[m]);
if(d<1||d>MMonth[m]) return 0;
d--;
pd+=y*365l;
pd+=y/4;
pd-=y/100;
pd+=y/400;
for(int i=0;i<m;i++) pd+=MMonth[i];
pd+=d;
return 1;
}
ببین این تابع تاریخ را می گیرد و تعداد روز سپری شده از سال 801 را به تو می دهد بعد تو این دو تا تاریخت را بی این تابع بده و اعداد حاصل را از هم تفریق کن بعد هم حالشو ببر.
MosaferJade
05-03-2011, 12:59
دوستان یه سوال
مگه کلاس Datetime عملیات جمع و تفریق و ... را ساپورت نمیکنه؟
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.