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

نام تاپیک: چه جوری میتونم به یک تاریخ شمسی یک ماه اضافه کنم ؟

  1. #1

    چه جوری میتونم به یک تاریخ شمسی یک ماه اضافه کنم ؟

    چه جوری میتونم به یک تاریخ شمسی یک ماه اضافه کنم ؟

    با vb.net برنامه می نویسم وبرای تبدیل تاریخ شمسی از یک dllاستفاده می کنم
    آخرین ویرایش به وسیله iman_vakilian : جمعه 27 اردیبهشت 1387 در 09:44 صبح

  2. #2
    کاربر دائمی آواتار Dariuosh
    تاریخ عضویت
    مهر 1386
    محل زندگی
    ایران - تهران
    پست
    448

    Smile

    شما براي استفاده از تازيخ شمسي از چه برنامه ايي استفاده ميکنيد ؟

  3. #3
    کاربر دائمی آواتار masoodp666
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    تهران
    پست
    115
    نقل قول نوشته شده توسط iman_vakilian مشاهده تاپیک
    چه جوری میتونم به یک تاریخ شمسی یک ماه اضافه کنم ؟
    با کد زیر میتونی X ماه به تاریخ الان شمسی اضافه کنی و در یه TextBox بریزی.


    Dim Cal As New System.Globalization.PersianCalendar
    Dim MyDate As Date
    MyDate = Cal.AddMonths(DateTime.Now, X)
    TextBox.Text = Cal.GetYear(MyDate) & Cal.GetMonth(MyDate) & Cal.GetDayOfMonth(MyDate)

  4. #4
    کاربر دائمی آواتار Dariuosh
    تاریخ عضویت
    مهر 1386
    محل زندگی
    ایران - تهران
    پست
    448

    Smile

    نقل قول نوشته شده توسط iman_vakilian مشاهده تاپیک
    وبرای تبدیل تاریخ شمسی از یک dllاستفاده می کنم
    خوب چون DLLها با هم فرق دارن يعني هر کي هر طور دوست داشته يا بلد بوده کد کرده متد استانداردي برا کاراشون ندارند پس بايد خودت پيدا کني شايدم اصلاً نداشته باشه
    به نظرم بهتره از کلاس خوده مايکروسافت استفاده کني که ديگه درگيره اينجور داستانا نشي
    System.Globalization.PersianCalendar

  5. #5
    متشکر از شما دوستان عزیر داریوش جان و مسعود جان

  6. #6
    VIP آواتار raravaice
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    Tehran
    سن
    41
    پست
    1,944
    یه نکته رو به یاد داشته باش که:


    System.Globalization.PersianCalendar
    برای اضافه کردن ماه باگ داره! که میاد بر اساس ماههای میلادی به تاریخ شمسی فعلی اضافه میکنه که یه روز جلو ، عقب میشه.
    پستش یادم نیست کجاست ، سرچ سایت هم خراب هست وگرنه منبع اونو که دوستان بهش اشاره کرده بودن بهت میگفتم.

    موفق باشید

  7. #7
    کاربر دائمی آواتار Dariuosh
    تاریخ عضویت
    مهر 1386
    محل زندگی
    ایران - تهران
    پست
    448

    Smile

    نقل قول نوشته شده توسط raravaice مشاهده تاپیک
    یه نکته رو به یاد داشته باش که:


    System.Globalization.PersianCalendar
    برای اضافه کردن ماه باگ داره! که میاد بر اساس ماههای میلادی به تاریخ شمسی فعلی اضافه میکنه که یه روز جلو ، عقب میشه.
    پستش یادم نیست کجاست ، سرچ سایت هم خراب هست وگرنه منبع اونو که دوستان بهش اشاره کرده بودن بهت میگفتم.

    موفق باشید
    احتمالاً يه باگ بوده که رفع شده چون الان هر چي که چک کردم غلط بر نميگردوند !
    البته من VS2008 دارم استفاده ميکنم

  8. #8
    کاربر دائمی آواتار Sub Zero
    تاریخ عضویت
    اردیبهشت 1385
    محل زندگی
    اهواز
    پست
    443
    احتمالاً يه باگ بوده که رفع شده چون الان هر چي که چک کردم غلط بر نميگردوند !
    البته من VS2008 دارم استفاده ميکنم
    من از vs2005 استفاده میکنم اگه امکان داره موارد زیر رو هم VS2008 چک کنید ببینید درست جواب میده ? :
    Dim Cal As New System.Globalization.PersianCalendar
    MsgBox(Cal.AddDays("87/07/01", -1))
    MsgBox(Cal.AddDays("87/06/31", -1))

    توضیح : نمایش تاریخ روز قبل

  9. #9
    کاربر دائمی آواتار linux
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    تهران
    پست
    2,313
    نقل قول نوشته شده توسط Sub Zero مشاهده تاپیک
    من از vs2005 استفاده میکنم اگه امکان داره موارد زیر رو هم VS2008 چک کنید ببینید درست جواب میده ? :
    Dim Cal As New System.Globalization.PersianCalendar
    MsgBox(Cal.AddDays("87/07/01", -1))
    MsgBox(Cal.AddDays("87/06/31", -1))

    توضیح : نمایش تاریخ روز قبل
    به روشنی و آشکارا مقدار برگشتی کدی که نوشتید با آن چیزی که شما انتظار دارید یکی نخواهد بود، شما از روز 31 ماه جون سال 1987 یک روز کم کردید که می شود 30 جون سال 1987.
    در اینجا حتما یک خطا خواهید گرفت برای اینکه ماه جون 30 روزه هست!
    حتما به نوع داده های آرگومنتهایی که با توابع می فرستید دقت کنید

  10. #10
    کاربر دائمی آواتار linux
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    تهران
    پست
    2,313
    نقل قول نوشته شده توسط Dariuosh مشاهده تاپیک
    احتمالاً يه باگ بوده که رفع شده چون الان هر چي که چک کردم غلط بر نميگردوند !
    البته من VS2008 دارم استفاده ميکنم
    باگ نبوده بی دقی برنامه نویسان هست!

  11. #11
    کاربر دائمی آواتار linux
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    تهران
    پست
    2,313
    نقل قول نوشته شده توسط iman_vakilian مشاهده تاپیک
    چه جوری میتونم به یک تاریخ شمسی یک ماه اضافه کنم ؟

    با vb.net برنامه می نویسم وبرای تبدیل تاریخ شمسی از یک dllاستفاده می کنم

    System.Globalization.PersianCalendar cal = new System.Globalization.PersianCalendar();
    DateTime d;
    d = cal.AddDays(cal.ToDateTime(87, 6, 31, 0, 0, 0, 0), -1);
    MessageBox.Show(string.Format("{0}/{1}/{2}"
    ,cal.GetYear(d),cal.GetMonth(d),cal.GetDayOfMonth (d)));
    System.Globalization.PersianCalendar cal = new System.Globalization.PersianCalendar();
    DateTime d;
    d = cal.AddMonths(cal.ToDateTime(87, 6, 31, 0, 0, 0, 0), 1);
    MessageBox.Show(string.Format("{0}/{1}/{2}",
    cal.GetYear(d),cal.GetMonth(d),cal.GetDayOfMonth (d)));

  12. #12
    کاربر دائمی آواتار Dariuosh
    تاریخ عضویت
    مهر 1386
    محل زندگی
    ایران - تهران
    پست
    448

    Smile

    نقل قول نوشته شده توسط Sub Zero مشاهده تاپیک
    من از vs2005 استفاده میکنم اگه امکان داره موارد زیر رو هم VS2008 چک کنید ببینید درست جواب میده ? :
    Dim Cal As New System.Globalization.PersianCalendar
    MsgBox(Cal.AddDays("87/07/01", -1))
    MsgBox(Cal.AddDays("87/06/31", -1))

    توضیح : نمایش تاریخ روز قبل
    نقل قول نوشته شده توسط linux مشاهده تاپیک
    به روشنی و آشکارا مقدار برگشتی کدی که نوشتید با آن چیزی که شما انتظار دارید یکی نخواهد بود، شما از روز 31 ماه جون سال 1987 یک روز کم کردید که می شود 30 جون سال 1987.
    در اینجا حتما یک خطا خواهید گرفت برای اینکه ماه جون 30 روزه هست!
    حتما به نوع داده های آرگومنتهایی که با توابع می فرستید دقت کنید
    در مورد اول که درست برميگردونه مورد دوم هم حق با آقاي linux هست

  13. #13
    کاربر دائمی آواتار linux
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    تهران
    پست
    2,313
    نقل قول نوشته شده توسط Dariuosh مشاهده تاپیک
    در مورد اول که درست برميگردونه مورد دوم هم حق با آقاي linux هست
    مورد اول هم باز شما از 1 جولای 1987 یک روز کم کردید میشه 30 جون 1987 هیچ ربطی به 1 مهر 87 نداره. و 31 شهریور سال 87 نداره.
    اگر از 1 مهرماه 87 یک روز کم کنیم میشه 31 شهریور سال 87، باز این کدی که شما استفاده می کنید، جوابی که شما ازش می خواهید را برنمی گرداند،به هر حال کد صحیح را چند پست قبل تر گذاشتم.
    در هر دو مورد نادرست برمی گردونه! مورد اولی آنقدر روشن بود که در موردش توضیح ندادم شما هم دقت نکردید که اگر 1 روز از 1 مهر 87 1 روز کم کنید و 30 شهریور جواب بگیرید ، نادرست هست.

    مورد تقویم فارسی آنقدر تو این فروم مطرح شده که دیگر از حالت سوال خارج شده و به مسخره بازی تبدیل شده، همه ی این موارد هم در پست های 2 سال پیش جواب داده شده. کاش سیستم آنقدر هوشمند بود که نمی گذاشت اصلا همچین پستهای ارسال بشوند.

  14. #14
    کاربر دائمی آواتار Sub Zero
    تاریخ عضویت
    اردیبهشت 1385
    محل زندگی
    اهواز
    پست
    443
    نقل قول نوشته شده توسط Linux
    همه ی این موارد هم در پست های 2 سال پیش جواب داده شده. کاش سیستم آنقدر هوشمند بود که نمی گذاشت اصلا همچین پستهای ارسال بشوند.
    جناب linux هدف من از ارسال این پست بررسی وضعیت PersianCalendar در Vs2008 بود فکر نمیکنم دوسال پیش Vs2008 وجود داشت .


    نقل قول نوشته شده توسط Dariuosh
    احتمالاً يه باگ بوده که رفع شده چون الان هر چي که چک کردم غلط بر نميگردوند !
    نقل قول نوشته شده توسط Dariuosh
    در مورد اول که درست برميگردونه مورد دوم هم حق با آقاي linux هست
    ممکنه بگین شما چیا رو چک کردین؟ یه بار می گین غلط برنمیگردونه یه بار میگین اشتباه برمیگردونه

  15. #15
    کاربر دائمی آواتار linux
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    تهران
    پست
    2,313
    نقل قول نوشته شده توسط Sub Zero مشاهده تاپیک
    جناب linux هدف من از ارسال این پست بررسی وضعیت PersianCalendar در Vs2008 بود فکر نمیکنم دوسال پیش Vs2008 وجود داشت .
    ممکنه بگین شما چیا رو چک کردین؟ یه بار می گین غلط برنمیگردونه یه بار میگین اشتباه برمیگردونه
    لیست تغییرات در msdn هست هر چیزی که تغییر کرده باشد یا حذف شده باشد یا به تازگی
    به فریم ورک اضافه شده باشد.
    کلا ورودی متدهای adddays, addmonth,... یک تاریخ میلادی هست خروجیش هم تاریخ میلادی هست، بعضی ها به این نکته توجه نکردند و این را به عنوان باگ مطرح کردند.

  16. #16
    کاربر دائمی آواتار Dariuosh
    تاریخ عضویت
    مهر 1386
    محل زندگی
    ایران - تهران
    پست
    448
    نقل قول نوشته شده توسط raravaice مشاهده تاپیک
    یه نکته رو به یاد داشته باش که:


    System.Globalization.PersianCalendar
    برای اضافه کردن ماه باگ داره! که میاد بر اساس ماههای میلادی به تاریخ شمسی فعلی اضافه میکنه که یه روز جلو ، عقب میشه.
    پستش یادم نیست کجاست ، سرچ سایت هم خراب هست وگرنه منبع اونو که دوستان بهش اشاره کرده بودن بهت میگفتم.

    موفق باشید
    نقل قول نوشته شده توسط Sub Zero مشاهده تاپیک
    من از vs2005 استفاده میکنم اگه امکان داره موارد زیر رو هم VS2008 چک کنید ببینید درست جواب میده ? :
    Dim Cal As New System.Globalization.PersianCalendar
    MsgBox(Cal.AddDays("87/07/01", -1))
    MsgBox(Cal.AddDays("87/06/31", -1))

    توضیح : نمایش تاریخ روز قبل
    نقل قول نوشته شده توسط linux مشاهده تاپیک
    به روشنی و آشکارا مقدار برگشتی کدی که نوشتید با آن چیزی که شما انتظار دارید یکی نخواهد بود، شما از روز 31 ماه جون سال 1987 یک روز کم کردید که می شود 30 جون سال 1987.
    در اینجا حتما یک خطا خواهید گرفت برای اینکه ماه جون 30 روزه هست!
    حتما به نوع داده های آرگومنتهایی که با توابع می فرستید دقت کنید
    آقاي raravaice يه نکته در مورد اضافه کردن ماه فرمودند من چک کردم مشکلي نديدم
    شما هم فرموديد که چک کنم ، کم کردنه روز رو در اون 2 تاريخ خاص قبل از جوابه من آقاي Linux يه جواب دادند که من بهش استناد کردم همين الان مشکلش چي بود

  17. #17
    کاربر دائمی آواتار Dariuosh
    تاریخ عضویت
    مهر 1386
    محل زندگی
    ایران - تهران
    پست
    448

    Smile

    نقل قول نوشته شده توسط linux مشاهده تاپیک
    مورد اول هم باز شما از 1 جولای 1987 یک روز کم کردید میشه 30 جون 1987 هیچ ربطی به 1 مهر 87 نداره. و 31 شهریور سال 87 نداره.
    اگر از 1 مهرماه 87 یک روز کم کنیم میشه 31 شهریور سال 87، باز این کدی که شما استفاده می کنید، جوابی که شما ازش می خواهید را برنمی گرداند،به هر حال کد صحیح را چند پست قبل تر گذاشتم.
    در هر دو مورد نادرست برمی گردونه! مورد اولی آنقدر روشن بود که در موردش توضیح ندادم شما هم دقت نکردید که اگر 1 روز از 1 مهر 87 1 روز کم کنید و 30 شهریور جواب بگیرید ، نادرست هست.

    مورد تقویم فارسی آنقدر تو این فروم مطرح شده که دیگر از حالت سوال خارج شده و به مسخره بازی تبدیل شده، همه ی این موارد هم در پست های 2 سال پیش جواب داده شده. کاش سیستم آنقدر هوشمند بود که نمی گذاشت اصلا همچین پستهای ارسال بشوند.
    خوب منم قصد برگردوندنه شمسي نداشتم که !!
    چون بعد از اجرا همون کد مينويسه 1987 !

  18. #18
    کاربر دائمی آواتار touraj
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    تهران
    پست
    341
    ببخشید، من یه سوال دارم. این تقویم فارسی میکروسافت رو میشه مثل Month Calender به فرم اضافه کرد؟

  19. #19
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    بهمن 1388
    محل زندگی
    Urmia
    پست
    5

    نقل قول: چه جوری میتونم به یک تاریخ شمسی یک ماه اضافه کنم ؟

    استفاده از System.Globalization.PersianCalendar هیچ باگی نداره من این رو تو تموم برنامه هام استفاده کردم و بعد از گذشت چند سال ازاستفاده برنامه هام هنوز شرکت های مورد قراردادم به این نوع باگ برخورد نکرده اند

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

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