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

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

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

دوشنبه, 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}

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

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

درود بر شما

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

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

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

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

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

2019-07-09 11:35:50.340

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

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

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

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

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

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

ارسال پاسخ برای این تاپیک

ارسال پاسخ مخصوص اعضا سایت می باشد ! میتوانید با حساب کاربری خود وارد سایت شده یا ثبت نام کنید