PDA

View Full Version : مبتدی: درخواست الگوریتم تبدیل تاریخ شمسی به میلادی



logofun
جمعه 06 آبان 1390, 14:30 عصر
سلام دوستان :ناراحت:

الگوریتم تبدیل تاریخ شمسی به میلادی رو میخواستم توی C++

کسی میگه ؟:قلب:

logofun
یک شنبه 08 آبان 1390, 08:55 صبح
:گریه: up...........

Mehrdadtest1
سه شنبه 10 آبان 1390, 17:22 عصر
بايد توجه داشت که روزهاي ماه هاي شمسي و ميلادي درتمام سال ها يکسان است و تغيير نمي کند. مثلا شروع ژانويه برابر 11 دي و اول فروردين مطابق 21 مارس است لذا با استفاده از هر تقويمي مي توان مطابقت روزهاي ماه هاي شمسي و ميلادي از هر سال را پيدا کرد.
الف - تبديل تاريخ هجري شمسي به ميلادي
براي تبديل سال شمسي به ميلادي چنانچه روز موردنظر بين اول فروردين تا 11 دي باشد عدد 621 و اگر روز موردنظر بين11 دي تا آخر اسفند باشد عدد 622 رابه سال شمسي مي افزاييم تا سال ميلادي به دست آيد.
مثلا براي اين که بدانيم 15 خرداد (که هميشه برابر 5 ژوئن است) از سال 1342 و 22 بهمن (11 فوريه) سال 1357 هجري شمسي مطابق چه سال ميلادي است اينگونه محاسبه مي کنيم.
ميلادي 1963= 621 + 1342
ميلادي 1979= 622 + 1357
ب - تبديل تاريخ ميلادي به هجري شمسي
چنانچه روز مورد نظر بين اول ژانويه تا 21 مارس باشد، عدد 622 و اگر روز مطلوب بين 22 مارس تا آخر دسامبر باشد عدد 621 را از سال ميلادي کسر مي کنيم.
مثال 1: 26 ژانويه (6 بهمن) 1978 ميلادي (روز امضاي پيمان ننگين کمپ ديويد) مطابق چه سال هجري شمسي است؟
هجري شمسي 1356 = 622 - 1978

linux
سه شنبه 17 آبان 1390, 23:48 عصر
بايد توجه داشت که روزهاي ماه هاي شمسي و ميلادي درتمام سال ها يکسان است و تغيير نمي کند. مثلا شروع ژانويه برابر 11 دي و اول فروردين مطابق 21 مارس است لذا با استفاده از هر تقويمي مي توان مطابقت روزهاي ماه هاي شمسي و ميلادي از هر سال را پيدا کرد.
الف - تبديل تاريخ هجري شمسي به ميلادي
براي تبديل سال شمسي به ميلادي چنانچه روز موردنظر بين اول فروردين تا 11 دي باشد عدد 621 و اگر روز موردنظر بين11 دي تا آخر اسفند باشد عدد 622 رابه سال شمسي مي افزاييم تا سال ميلادي به دست آيد.
مثلا براي اين که بدانيم 15 خرداد (که هميشه برابر 5 ژوئن است) از سال 1342 و 22 بهمن (11 فوريه) سال 1357 هجري شمسي مطابق چه سال ميلادي است اينگونه محاسبه مي کنيم.
ميلادي 1963= 621 + 1342
ميلادي 1979= 622 + 1357
ب - تبديل تاريخ ميلادي به هجري شمسي
چنانچه روز مورد نظر بين اول ژانويه تا 21 مارس باشد، عدد 622 و اگر روز مطلوب بين 22 مارس تا آخر دسامبر باشد عدد 621 را از سال ميلادي کسر مي کنيم.
مثال 1: 26 ژانويه (6 بهمن) 1978 ميلادي (روز امضاي پيمان ننگين کمپ ديويد) مطابق چه سال هجري شمسي است؟
هجري شمسي 1356 = 622 - 1978
روش شما کاملا غلط هست و دچار اشتباهات فاحشی خواهد شد. قبلا در مورد الگوریتم تقویم فارسی به انداز کافی بحث شده است

atrin-hojjat
جمعه 15 دی 1391, 13:35 عصر
m=میلادی به شمسی
s=شمسی به میلادی
a=سال شمسی
b=سال میلادی
n=نوع سال(میلادی یا شمسی)

#include <iostream>
#include <conio.h>
using namespace std;
int main(){
char n;
int a,b;
cin>>n;
if(n=='m'){
cin>>a;
b=a-621;
cout<<"\n"<<b;
}else{
cin>>b;
a=b+621;
cout<<"\n"<<a;
}
getch();
return 0;
}