مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

eliblue

عضویت از 1394/08/11

تبدیل تاریخ شمسی به میلادی

  • دوشنبه 24 تیر 1398
  • 16:13
تشکر میکنم

با سلام.

من تاریخ حال رو با DateTime.Now  در دیتابیس که فیلدی از نوع datetime داره ذخیره میکنم . به طور مثال

2019-07-09 11:35:50.340    ذخیره میشه در دیتابیس. حالا میخوام کاربر یه  تاریخ رو از باکس تاریخ که از .Bootstrap-PersianDateTimePicker استفاده میکنه و تاریخ و زمان شمسی رو میشه انتخاب کرد انتخاب کنه و مقایسه کنم با اون تاریخ میلادی. حالا باید این تاریخ شمسی ابتدا به میلادی تبدیل شه دیگه

Persian Calendar pc = new Persian Calendar();
                 

   DateTime dt = new DateTime(1398, 05, 04, 12, 22, 22, pc);

حالا اینجوری تبدیل میکنم به میلادی سال و ماه و روزو.. رو فرضا جدا کردم از هم و به  خط دوم دادم. اما این جوری تبدیل به میلادی انجام میشه ولی خروجی به این فرمته

Date = {7/26/2019 12:00:00 AM}

که وقتی تو کوری میخوام با تاریخ داخل دیتابیس که میلادیه مقایسه کنم و بگم مثلا تاریخای بیشتر از این رو بیار نمیشه. نمیتونم - رو هم با / ریپلیس کنم چون از نوع دیت تایمه . چه جوری میشه اینا یک شکل شن و قابل مقایسه؟؟

پاسخ های این پرسش

تعداد پاسخ ها : 4 پاسخ
کاربر سایت

اوبالیت

عضویت از 1392/08/24

  • چهارشنبه 26 تیر 1398
  • 09:34

درود بر شما

1- اگر توسط کوئری SQL می خواید مقایسه کنید به راحتی می تونید مقدار مورد نظر رو از طریق Parameters با فیلد مورد نظر مقایسه کنید. اگر نمی شه کدتون رو اینجا قرار بدید.

2- اگر در درون C# می خواید مقایسه کنید باز مشکلی نباید باشه به راحتی می تونید با Parse کردن به نوع تاریخ مقایسه بکنید. اگر از درون برنامه انجام می دید کدتون رو قرار بدید.

فقط یه نکته تو صحبتتون بود و اونم اینه موقع تبدیل ساعت شما تبدیل به 12:00:00 شده که حتما حتما تابع داخل کلاس تبدیل تاریخ شمسی رو باید کنترل کنید. نباید اینطوری بشه. یا اگر راهی ندارید تاریخ و ساعت رو جداگانه ذخیره کنید.

کاربر سایت

eliblue

عضویت از 1394/08/11

  • چهارشنبه 26 تیر 1398
  • 12:33

از طریق لینک میخوام مقایسه کنم. توضیح دادم چون فرمت های تاریخ میلادی که سیو شده با اینی که تبدیل شده به شمسی یکی نیست مقایسه امکان پذیر نیست . اصلا اینا به کنار روشی هست که تاریخ شمسی رو به این فرمت میلادی در بیارم؟

2019-07-09 11:35:50.340

کاربر سایت

اوبالیت

عضویت از 1392/08/24

  • چهارشنبه 26 تیر 1398
  • 18:35

فرقی نمی کنه لینک باشه یا ADO.NET یا...

شما اگر سمت SQL می خواید مقایسه کنید که دستوراتش مشخص هست.

اگر در سمت کد خودتون می خواید مقایسه کنید مقداری که می خونید رو در یک متغیر DateTIme بریزید و مقایسه کنید.

کاربر سایت

eliblue

عضویت از 1394/08/11

  • شنبه 29 تیر 1398
  • 10:23

گفتم قبلا هم مشکل اینه وقتی  به دیت تام تبدیل میکنم یه فرمت خاصی داره که با فرمتی که تو دیتابیسمه فرق داره پس قابل مقایسه نیست و اگه بخوام فرمتشو تغییر بدم باید از ریپلیس و استرینگ استفاده کنم که با بازم فرمتش با دیت تایمی که دارم نمیشه مقایسه کرد

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)