نمایش نتایج 1 تا 12 از 12

نام تاپیک: تقویم شمسی

  1. #1

    تقویم شمسی

    سلام خدمت دوستان

    من تاریخ رو به صورت میلادی داخل پایگاه داده ذخیره میکنم,میخوام هنگام گزارش گیری از جدول تاریخ رو به
    شمسی نمایش بده
    اگه با یک سورس راهنمایی کنیید ممنون میشم
    من dllهای تبدیل تاریخ میلادی به شمسی را دارم ولی نتونستم این کار رو انجام بدم

  2. #2

    نقل قول: تقویم شمسی

    کسی نمیتونه جواب بده
    احتیاج دارمش

  3. #3

    نقل قول: تقویم شمسی

    نقل قول نوشته شده توسط hi1001 مشاهده تاپیک
    سلام خدمت دوستان

    من تاریخ رو به صورت میلادی داخل پایگاه داده ذخیره میکنم,میخوام هنگام گزارش گیری از جدول تاریخ رو به
    شمسی نمایش بده
    اگه با یک سورس راهنمایی کنیید ممنون میشم
    من dllهای تبدیل تاریخ میلادی به شمسی را دارم ولی نتونستم این کار رو انجام بدم
    شما از همون اول به شمسی چرا ذخیره نمی کنی؟

  4. #4
    کاربر تازه وارد
    تاریخ عضویت
    فروردین 1386
    پست
    55

    نقل قول: تقویم شمسی

    با سلام خدمت دوست عزیز این proc را ابتدا در Sql اجرا نمایید
    Create FUNCTION [dbo].[dp_ToHijri] (@EDate datetime)
    RETURNS nvarchar(50) AS
    BEGIN
    if @EDate is null return ''

    Declare @EYear int, @EMon smallint, @EDay smallint, @ELeap bit, @EMonArray Char(12), @EDayOfYear int
    Declare @FYear int, @FMon smallint, @FDay smallint, @FLeap bit, @FMonArray Char(12)
    Select @FMonArray= Char(31)+Char(31)+Char(31)+Char(31)+Char(31)+Char( 31)+Char(30)+Char(30)+Char(30)+Char(30)+Char(30)+C har(29)
    Select @EMonArray= Char(31)+Char(28)+Char(31)+Char(30)+Char(31)+Char( 30)+Char(31)+Char(31)+Char(30)+Char(31)+Char(30)+C har(31)

    Select @EYear= Year(@EDate)
    Select @EMon= Month(@EDate)
    Select @EDay= Day(@EDate)
    if (@EYear %4)=0 Select @ELeap=1 else Select @ELeap=0
    --------------------- Calc Day Of Year
    Declare @Temp int, @Cnt int
    Select @Cnt=@EMon-1
    Select @Temp=0
    While @Cnt<>0 begin
    if (@Cnt=2)and(@ELeap=1) Select @Temp= @Temp+29
    else Select @Temp= @Temp + Ascii(Substring(@EMonArray, @Cnt, 1))
    Select @Cnt=@Cnt-1
    end
    Select @EDayOfYear= @Temp+@EDay
    ---------------------- Convert to Farsi
    Select @Temp= @EDayOfYear-79
    if @Temp>0 Select @FYear= @EYear-621
    else begin
    Select @FYear= @EYear-622
    if ((@FYear %4)=3) Select @Temp= @Temp+366 else Select @Temp= @Temp+365
    end
    if (@FYear %4)=3 Select @FLeap=1 else Select @Fleap=0
    Select @Cnt= 1
    While (@Temp<>0) and (@Temp>Ascii(Substring(@FMonArray, @Cnt, 1))) begin
    if @Cnt=12
    if (@FLeap=1) Select @Temp=@Temp-30 else Select @Temp= @Temp-29
    else Select @Temp= @Temp-Ascii(Substring(@FMonArray, @Cnt, 1))
    Select @Cnt= @Cnt+1
    end
    if @Temp<>0 begin
    Select @FMon= @Cnt
    Select @FDay= @Temp
    end else begin
    Select @FMon= 12
    Select @FDay=30
    end
    ------------------ Create Output
    Declare @YStr Char(4), @MStr char(2), @DStr Char(2)
    select @YStr= Convert(Char, @FYear)
    if @FMon<10 Select @MStr='0'+Convert(Char,@FMon) else Select @MStr=Convert(Char, @FMon)
    if @FDay<10 Select @DStr='0'+Convert(Char,@FDay) else Select @DStr=Convert(Char, @FDay)
    return @YStr+'/'+@MStr+'/'+@dStr
    END
    سپس با دستور Select
    ُ
    select [dbo].[dp_ToHijri]([date]) from tblname
    فیلد تاریخ را در dp_ToHijri قرار دهید تبدیل به تاریخ شمسی می شود و متنی است <<توجه

  5. #5

    نقل قول: تقویم شمسی

    درج کردن تاریخ به میلادی داخل یک دیتابیس یک استاندارد میباشه چون بعدا میتوان روی ان پردازش بیشتری انجام داد


    از دوست عزیز برای کویری بالا تشکر میکنم

    من دستوری میخوام که مسقیم داخل سی شارپ بشه ازش استفاده کرد
    که اطلاعات فیلدی که تاریخ میلادی داخلش دخیره میشه رو تبدیل به شمسی کنه

  6. #6

    نقل قول: تقویم شمسی

    سلام
    از persian calender در #c استفاده کن

  7. #7

    نقل قول: تقویم شمسی

    از تمام دوستان ممنونم
    ولی کارم راه نیوفتاده
    لطفا کمک کنید
    اطلاعات تاریخ رو بصورت میلادی تو دیتابیس ذخیره می کنم و موقع نمایش توی GridView می خوام اون رو بصورت شمسی نمایش بدم.


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

  8. #8
    کاربر تازه وارد
    تاریخ عضویت
    فروردین 1386
    پست
    55

    نقل قول: تقویم شمسی

    دوست عزیز از نظر من استفاده از همون function برای مبتدی ها بهترین راه هستش ولی این کد من خودم امتحان کردم درست جواب می داد
    System.Globalization.CultureInfo calture = new System.Globalization.CultureInfo("fa-IR");
    System.Globalization.DateTimeFormatInfo info = calture.DateTimeFormat;
    info.AbbreviatedDayNames = new string[] { "ی", "د", "س", "چ", "پ", "ج", "ش" };
    info.DayNames = new string[] { "یکشنبه", "دوشنبه", "ﺳﻪشنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه" };
    info.AbbreviatedMonthNames = new string[] { "فروردین", "ارديبهشت", "خرداد", "تير", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند", "" };
    info.MonthNames = new string[] { "فروردین", "ارديبهشت", "خرداد", "تير", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند", "" };
    info.AMDesignator = "ق.ظ";
    info.PMDesignator = "ب.ظ";
    info.ShortDatePattern = "yyyy/MM/dd";
    info.FirstDayOfWeek = DayOfWeek.Saturday;
    System.Globalization.PersianCalendar cal = new System.Globalization.PersianCalendar();

    typeof(System.Globalization.DateTimeFormatInfo).Ge tField("calendar", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).SetValue (info, cal);
    object obj = typeof(System.Globalization.DateTimeFormatInfo).Ge tField("m_cultureTableRecord", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).GetValue (info);
    obj.GetType().GetMethod("UseCurrentCalendar", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).Invoke(ob j, new object[] { cal.GetType().GetProperty("ID", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).GetValue (cal, null) });
    typeof(System.Globalization.CultureInfo).GetField( "calendar", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).SetValue (calture, cal);
    typeof(System.Globalization.CultureInfo).GetField( "calendar", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).SetValue (calture, cal);

    System.Threading.Thread.CurrentThread.CurrentCultu re = calture;
    System.Threading.Thread.CurrentThread.CurrentUICul ture = calture;
    System.Globalization.CultureInfo.CurrentCulture.Da teTimeFormat = info;
    System.Globalization.CultureInfo.CurrentUICulture. DateTimeFormat = info;


    آدرس منبع http://social.msdn.microsoft.com/for...-a58fa4373bc9/

    vooodoooo
    آخرین ویرایش به وسیله voodoo01 : پنج شنبه 17 تیر 1389 در 01:05 صبح دلیل: اشتباه تایپی

  9. #9
    کاربر دائمی آواتار happy65_sh
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    شهر بادگیرها
    پست
    372

    نقل قول: تقویم شمسی


    PersianCalendar p= new PersianCalendar();
    DateTime dt = DateTime.Now;
    string day = p.GetDayOfMonth(dt).ToString();
    string month = p.GetMonth(dt).ToString();
    string year = p.GetYear(dt).ToString();
    MessageBox.Show(year + "/" + month + "/" + day);

    براي استفاده از persionCalender بايد System.Globalization را به using اضافه كني

  10. #10

    نقل قول: تقویم شمسی

    همین چند روز پیش یک کلاس PersianDateTime طراحی کردم. بعد از لود کردن داده ها از دیتابیس از این کلاس برای تبدیل تاریخ استفاده کن!
    اینم لینکش

  11. #11

    نقل قول: تقویم شمسی

    از تمام دوستان تشکر میکنم
    واقعا خسته نباشید.


    از دوستان کسی میتونه یک دیتابیس با اکسس درست کنه و سوال منو در قالب اون نمایش بده

    (داخل دیتابیس یک جدول با دو فیلد داشته باشه یکی نام و یکی تاریخ که تاریخ به صورت میلادی ذخیره شده باشه و با دستورات اونو داخل یکdataGridView به صورت شمسی (فارسی)نمایش بده)

    بازم ممنون

  12. #12
    کاربر تازه وارد
    تاریخ عضویت
    فروردین 1386
    پست
    55

    Lightbulb نقل قول: تقویم شمسی

    دوست عزیز این هم کد کامل
    با احترام فراوان
    Voodoo
    فایل های ضمیمه فایل های ضمیمه

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •