تاريخ شمسي همراه با ايام هفته

شروع موضوع توسط kohyar ‏9 ژوئن 2007 در انجمن asp , ASP.NET

  1. kohyar

    kohyar Registered User

    تاریخ عضویت:
    ‏5 آپریل 2007
    نوشته ها:
    94
    تشکر شده:
    0
    محل سکونت:
    تهران
    سلام به همگي
    من تو asp براي تبديل تاريخ ميلادي به شمسي از كد زير استفاده مي كنم كه فقط تاريخ شمسي رو ميده ولي ايام هفته رو مشخص نمي كنه
    من اين كد را تست كردم درست جواب ميده
    اگه ميشه لطف كنين و بهم بگين چه تغييري تو كد بدم تا ايام هفته رو هم به من بده
     
  2. برترین مرکز خرید و فروش وب سایت
  3. shervin

    shervin ASP.net

    تاریخ عضویت:
    ‏26 ژوئن 2005
    نوشته ها:
    6,314
    تشکر شده:
    259
    محل سکونت:
    تهران
    یه دی ال ال دارم خیلی امکانات خوبی داره برای تاریخ شمسی حیف برای دا نت هست :D
     
  4. ma_christian

    ma_christian Registered User

    تاریخ عضویت:
    ‏25 ژانویه 2007
    نوشته ها:
    366
    تشکر شده:
    2
    محل سکونت:
    Tehran
    با اجازه از دیگر دوستان ؛

    این کد تاریخ را بهمراه نام ماه نشان می دهد. مثلا : امروز دوشنبه 20 خرداد 1386​

    PHP:
    <script language="vbscript" runat="server">
    Month_days=array(0,31,59,90,120,151,181,212,242,272,303,333)
    my_week_days=array("یکشنبه","دوشنبه","سه شنبه","چهار شنبه","پنج شنبه","جمعه","شنبه")
    Months_name=array("فروردین","اردیبهشت","خرداد","تیر","مرداد","شهریور","مهر","آبان","آذر","دی","بهمن","اسفند")
    mdtn=day(now)+Month_days(month(now)-1)
    my_week_day=my_week_days(weekday(now)-1)
      if 
    mdtn>79 then
        my_1
    =mdtn-79
         
    if my_1<=186 then
            
    if (my_1 mod 31)=0 then
         shamsi_day
    =31
         shamsi_month
    =int(my_1/31)
        else
         
    shamsi_day=(my_1 mod 31)
         
    shamsi_month=int(my_1/31)+1
       end 
    if
     else
      
    my_1=(my_1-186)
       if (
    my_1 mod 30)=0 then
         shamsi_day
    =30
           shamsi_month
    =int(my_1/30)+6
        
    else
         
    shamsi_day=(my_1 mod 30)
         
    shamsi_month=int(my_1/30)+7
        end 
    if
      
    end if
     
    shamsi_year=year(now)-621
      
    else
      if ((
    year(nowmod 100)=and (year(nowmod 400)=0) or ((year(nowmod 100)<>and (year(nowmod 4)=0then
       my_day_diff
    =11
        
    else
          
    my_day_diff=10
       end 
    if
    my_1=(mdtn+my_day_diff)/30
       
    if (my_1 mod 30)=0 then
           shamsi_day
    =30
           shamsi_month
    =int(my_1/30)+9
        
    else
      
    shamsi_day=(my_1 mod 30)
      
    shamsi_month=int(my_1/30)+10
     end 
    if
    shamsi_year=year(now)-622
    end 
    if
    my_shamsi_month=Months_name(shamsi_month-1)
    Persian_Date_String="امروز " my_week_day&"، "shamsi_day+" " my_shamsi_month " " shamsi_year
    Response
    .Write Persian_Date_String
    </script>
    البته فکر می کنم بشود با استفاده از دستور CASE هم آن را اجرا کرد ولی خوب این هم بد نیست.​
     
  5. ma_christian

    ma_christian Registered User

    تاریخ عضویت:
    ‏25 ژانویه 2007
    نوشته ها:
    366
    تشکر شده:
    2
    محل سکونت:
    Tehran
    می توانید آن را قرار بدهید؟ :)
     
  6. shervin

    shervin ASP.net

    تاریخ عضویت:
    ‏26 ژوئن 2005
    نوشته ها:
    6,314
    تشکر شده:
    259
    محل سکونت:
    تهران
    بله قربان چرا نمیشه؟
     

    فایل های ضمیمه:

    • persia.zip
      اندازه فایل:
      55.8 KB
      نمایش ها:
      83
  7. ma_christian

    ma_christian Registered User

    تاریخ عضویت:
    ‏25 ژانویه 2007
    نوشته ها:
    366
    تشکر شده:
    2
    محل سکونت:
    Tehran
    ممنون قربان
     
  8. خرید بیت کوین
  9. kohyar

    kohyar Registered User

    تاریخ عضویت:
    ‏5 آپریل 2007
    نوشته ها:
    94
    تشکر شده:
    0
    محل سکونت:
    تهران
    سلام دوستان
    كد تبديل تاريخ شمسي به ميلادي(سيستمي) رو مي خوام
    ممنون ميشم
     
  10. amin_lili

    amin_lili کاربر تازه وارد

    تاریخ عضویت:
    ‏24 آپریل 2007
    نوشته ها:
    528
    تشکر شده:
    2
    محل سکونت:
    ای کاش آنجا ...
    تبدیل شمسی به میلادی :

    System.Globalization.PersianCalendar pc = new System.Globalization.PersianCalendar();
    DateTime d = pc.ToDateTime(1386, 4, 4, 0, 0, 0, 0);
    TextBox1.Text = d.ToShortDateString();

    تبدیل میلادی به شمسی :

    public string GeorgianToPersian(DateTime date)
    {
    System.Globalization.PersianCalendar p = new System.Globalization.PersianCalendar();
    int year = p.GetYear(date);
    int month = p.GetMonth(date);
    int day = p.GetDayOfMonth(date);
    return (year.ToString() + "/" + (month > 9 ? month.ToString() : "0" + month.ToString()) + "/" + (day > 9 ? day.ToString() : "0" + day.ToString()));
    }

    کار میکنه بدون کوچکترین مشکل






    .
     
  11. H_R

    H_R مدیر بازنشسته

    تاریخ عضویت:
    ‏30 مارس 2005
    نوشته ها:
    3,285
    تشکر شده:
    17
    محل سکونت:
    North Pole
    محض گیج نشدن بقیه دوستان و آیندگان :
    بله کار میکنه ولی فقط توی دات نت فریم ورک 2 به بالا یعنی asp.net 2 ! و اون کدی که اون بالاست و ایراد هم داره پست اول ! مختص تبدیل میلادی به شمسی توی Asp 3 یا کلاسیک اه !

    ویرایش : راستی یادم رفت بگم فکر میکنم توی انجمن ++C الگوریتم درستش رو با رعایت سالهای کبیسه و اینا پیدا کنی .
     
  12. _H2_

    _H2_ کاربر تازه وارد

    تاریخ عضویت:
    ‏27 می 2007
    نوشته ها:
    35
    تشکر شده:
    0
    سلام
    بهترین کد همان کد کاربر amin_lili است که به هیچ چیز نیاز ندارد و در ASP.Net2 کار میکند و با عرض پوزش و شرمندگی از اساتید بزرگ!!!! ندیده و تست نکرده میگویم کلیه الگوریتم ها و dll های موجود ایراد دارند و اگر هم خیلی خیلی ردیف باشند و درست کارکنند صرفاً در محدودع یک بازه 33 ساله از شروع اولین کبیسه پنج ساله درست کار میکنند و الگوریتم اصلی و فوق العاده سریع و قطعی اینها نیست! بلکه باید تاریخ را به تعداد روز تبدیل کرد.
     
  13. kohyar

    kohyar Registered User

    تاریخ عضویت:
    ‏5 آپریل 2007
    نوشته ها:
    94
    تشکر شده:
    0
    محل سکونت:
    تهران
    آقايون من واسه asp مي خوام
    اگه كسي داره واسم بذاره
    باي
     
عسل طبیعی و گرده گل ایرانیavanak  همکاری در فروش