نمايش پست تنها
قديمي July 25th, 2006, 21:16   #72
alibeirami
Senior Member
 
تاريخ عضويت: Mar 2006
محل سكونت: تهرانپارس
ارسالها: 148
تشکر: 57
تشکر از ايشان: 301 بار در 96 پست
alibeirami (سطح 1)alibeirami (سطح 1)alibeirami (سطح 1)alibeirami (سطح 1)
ارسال پيغام بوسیله Yahoo به alibeirami
0

نقل قول:
نوشته اصلي بوسيله Mehdi..4X
سلام خدمت تمامي دوستان سرمايه دار

من دنبال يه برنامه هستم كه هنوز نتونستم پيداش كنم

شرح برنامه مورد نظر:
من يه برناممه اي ميخوام كه تاريخ ميلادي رو به تاريخ شمسي برگردونه و برعكسش

البته تو سايت http://www.persianforum.net فكر كنم يه همچين چيزي گذاشته بود ولي من موفق نشدم تو اين سايت ثبت نام كنم.(انشالله كه شما بتونين )

تو سايتاي خارجكي هم گذاشته بودن ولي به جاي تاريخ شمسي تاريخ قمري رو داشت.

خلاصه هركس آدرس همچين برنامه اي رو داره بده. من خودم دسشتو مي بوسم.
سلام آقا مهدی .
این یه کلاس #C که خودم نوشتم البته الگوریتمش ماله یکی دیگست ببین بدردت میخوره خواستی با C هم فکر کنم داشته باشمش.
PHP Code:
public  struct ShamsiDate
    
{    
        public 
int iYear;
        public 
int iMonth;
        public 
int iDay;
    }
    public 
struct GregorianDate
    
{
        public 
int iYear;
        public 
int iMonth;
        public 
int iDay;
    }
    public class 
Shamsi
    
{
        private 
Shamsi(){}

        private static 
int[] ShamsiMonthsLong = {0,31,31,31,31,31,31,31,30,30,30,30,30,29};
            
        public static 
ShamsiDate Today
        
{
            
get
            
{                
                return 
Shamsi.GregorianToShamsi(DateTime.Now.Year,
                    
DateTime.Now.Month,DateTime.Now.Day);
            }
        }

        public static 
string TodayString
        
{
            
get
            
{
                
DateTime dt = DateTime.Now;
                
ShamsiDate sh = Shamsi.GregorianToShamsi(dt.Year,dt.Month,dt.Day);
                return (
sh.iYear.ToString() + "/" + sh.iMonth.ToString("00") + "/" + 
                    
sh.iDay.ToString("00"));
            }
        }
        public static 
string CurrentTime
        
{
            
get
            
{
                return 
DateTime.Now.Hour.ToString("00") 
                    + 
":" + DateTime.Now.Minute.ToString("00")+":"
                    
+DateTime.Now.Second.ToString("00");
            }
        }

        public static 
string[] ShamsiMonths = {" ","فروردين","ارديبهشت","خرداد","تير",
                                                  
"مرداد","شهريور","مهر","آبان","آذر","دي","بهمن","اسفند"};
        public static 
ShamsiDate GregorianToShamsi(int iGregorianYear,int iGregorianMonth
            
,int iGregorianDay)
        {
            
int  shamsiDay, shamsiMonth, shamsiYear;
            
int  dayCount,farvardinDayDiff,deyDayDiff ;
            
int[]  sumDayGregorianMonth = {0,31,59,90,120,151,181,212,243,273,304,334};
            
int[]  sumDayGregorianMonthLeap= {0,31,60,91,121,152,182,213,244,274,305,335};
            
ShamsiDate  shamsidate;
    
            
farvardinDayDiff=79;
    
            if (
GregorianIsLeap(iGregorianYear))
            {
                
dayCount = sumDayGregorianMonthLeap[iGregorianMonth-1] + iGregorianDay; 
            }
            else
            {
                
dayCount = sumDayGregorianMonth[iGregorianMonth-1] + iGregorianDay; 
            }
            if((
GregorianIsLeap(iGregorianYear - 1)))
            {
                
deyDayDiff = 11;
            }
            else
            {
                
deyDayDiff = 10;
            }    
            if (
dayCount > farvardinDayDiff) 
            {
                
dayCount = dayCount - farvardinDayDiff;
                if (
dayCount <= 186)
                {
                    switch (
dayCount%31)
                    {
                        case 
0:
                            
shamsiMonth = dayCount / 31;
                            
shamsiDay = 31;
                            break;
                        default:
                            
shamsiMonth = (dayCount / 31) + 1; 
                            
shamsiDay = (dayCount%31);
                            break;
                    }
                    
shamsiYear = iGregorianYear - 621;
                }
                else 
                {
                    
dayCount = dayCount - 186;
                    switch (
dayCount%30)
                    {
                        case 
0:
                            
shamsiMonth = (dayCount / 30) + 6;
                            
shamsiDay = 30;
                            break;
                        default:
                            
shamsiMonth = (dayCount / 30) + 7;
                            
shamsiDay = (dayCount%30);
                            break;
                    }
                    
shamsiYear = iGregorianYear - 621;
                }
            }
            else
            {
                
dayCount = dayCount + deyDayDiff;
        
                switch (
dayCount%30)
                {
                    case 
0 :
                        
shamsiMonth = (dayCount / 30) + 9;
                        
shamsiDay = 30;
                        break;
                    default:
                        
shamsiMonth = (dayCount / 30) + 10;
                        
shamsiDay = (dayCount%30);
                        break;
                }
                
shamsiYear = iGregorianYear - 622;
        
            }
            
shamsidate.iYear = shamsiYear;
            
shamsidate.iMonth = shamsiMonth;
            
shamsidate.iDay = shamsiDay;
        
            return 
shamsidate ;
        }

        public static 
ShamsiDate GregorianToShamsi(DateTime dt)
        {
            return 
GregorianToShamsi(dt.Year,dt.Month,dt.Day);
        }

        
        public static 
bool GregorianIsLeap(int GregorianYear)
        {
            if(((
GregorianYear % 100)!= 0 && (GregorianYear % 4) == 0) 
                || ((
GregorianYear % 100)== 0 && (GregorianYear % 400) == 0))
                return 
true;
            else
                return 
false;
        }
        public 
GregorianDate ShamsiToGregorian(string strCalendar)
        {
            
string[] str = strCalendar.Split(new char[]{'/'});
            return 
ShamsiToGregorian(Convert.ToInt32(str[0]),Convert.ToInt32(str[1]),
                
Convert.ToInt32(str[2]));
        }
        public static 
GregorianDate ShamsiToGregorian(int ShamsiYear,
            
int ShamsiDay,int ShamsiMonth)
        { 
    
            
GregorianDate    gregorianDate, farvardin1st;
            
int           marchDayDiff, remainDay=0;
            
int           dayCount, iGregorianYear, i; 


            
int[] iGregorianMonth  =  {30,31,30,31,31,30,31,30,31,31,28,31}; 
            
iGregorianYear = ShamsiYear + 621;
            if(
GregorianIsLeap(iGregorianYear)) 
            {

                
farvardin1st.iMonth = 3;
                
farvardin1st.iDay = 20;
                
marchDayDiff = 12;
            }
            else 
            { 

                
farvardin1st.iMonth = 3;
                
farvardin1st.iDay =21;
                
marchDayDiff = 11;
            } 
            if(
GregorianIsLeap(iGregorianYear+1))
            {
                
iGregorianMonth[10] = iGregorianMonth[10] + 1;
            }
            if((
ShamsiMonth>=1)&&( ShamsiMonth<=6))
                
dayCount = ((ShamsiMonth-1) * 31) + ShamsiDay;
            else
                
dayCount =(6 * 31) + ((ShamsiMonth - 7) * 30) + ShamsiDay; 

            if (
dayCount <= marchDayDiff) 
            {
                
gregorianDate.iDay = dayCount + (31 - marchDayDiff);
                
gregorianDate.iMonth = 3;
                
gregorianDate.iYear=iGregorianYear;
            }
            else
                
remainDay = dayCount - marchDayDiff; 

            
i = 0;

            while ((
remainDay > iGregorianMonth[i]))
            { 
                
remainDay = remainDay - iGregorianMonth[i];
                
i++;
            } 
            
gregorianDate.iDay = remainDay;

            if (
i > 8) 
            { 
                
gregorianDate.iMonth = i - 8; 
                
gregorianDate.iYear =  iGregorianYear + 1;
            }
            else
            {
                
gregorianDate.iMonth = i + 4;
                
gregorianDate.iYear =  iGregorianYear;
            } 
            return 
gregorianDate;    
        }        
    } 
__________________
The market will quite naturally make you face what is inside of you on a
moment-to-moment basis. What is inside of you could be confidence or fear, a
perception of opportunity or loss, restraint or uncontrollable greed, objectivity or
illusion. The market just reflects these mental conditions, it does not create them
.
alibeirami آفلاين است