PDA

View Full Version : آموزش: تبدیل تاریخ شمسی به میلادی و برعکس در C#‎



meslehichkas
چهارشنبه 22 اردیبهشت 1389, 09:40 صبح
میتونید از این تکه کد استفاده کنید:
//----------------------------------------------------------------------------------------------
البته باید از using System.Globalization
استفاده کنید

//-----------------------------------------tabdile miladi b shamsi-------------------------
PersianCalendar p = newPersianCalendar();
DateTime dmiladi = newDateTime();
dmiladi = DateTime.Now;
//string year = p.GetYear(dmiladi).ToString();
this.Text = p.GetYear(dmiladi).ToString() + " " + p.GetMonth(dmiladi).ToString() + " " + p.GetDayOfMonth(dmiladi).ToString() + " " + p.GetDayOfWeek(dmiladi).ToString() + " ";
//-----------------------------------------------------------------------------------------
//----------------------------------------tabdile shamsi b miladi--------------------------
label1.Text = p.ToDateTime(p.GetYear(dmiladi), p.GetMonth(dmiladi), p.GetDayOfMonth(dmiladi), 0, 0, 0, 0).ToShortDateString();
label1.Text = p.ToDateTime(1389, 2, 21, 0, 0, 0, 0).ToShortDateString();

haifa01
دوشنبه 13 تیر 1390, 13:40 عصر
سلام ،وقت بخیر،برنامه ای رو که میخوام بنویسم بارها باید تاریخ شروع و پایان یک دوره رو از کاربر بگیره،اونوقت باید چکار کرد،میخوام بگم که میشه با نوشتن چند خط کد، تمام فیلد هایی رو که از نوع date time هستند رو به شمسی تبدیل کرد؟؟؟؟لطف کنید بیشتر توضیح بدین،ممنون میشم

sunn789
دوشنبه 13 تیر 1390, 13:51 عصر
کار سختی نیست یه کلاس جدا در پروژه ایجاد کنید و اونوقت میتونید متودی بنوییسید که هر جا دلتون خواست و به هر تعداد که دتون خواست اجرا بشه فقط تاریخ میلادی رو از بانک بگیرید و به کلاس تغییر تاریخ ارسال کنید
البته این کار رو توی اس کیو ال هم میشه انجام داد که یه کم مشکل تره

Farshid007
دوشنبه 13 تیر 1390, 13:51 عصر
سلام ،وقت بخیر،برنامه ای رو که میخوام بنویسم بارها باید تاریخ شروع و پایان یک دوره رو از کاربر بگیره،اونوقت باید چکار کرد،میخوام بگم که میشه با نوشتن چند خط کد، تمام فیلد هایی رو که از نوع date time هستند رو به شمسی تبدیل کرد؟؟؟؟لطف کنید بیشتر توضیح بدین،ممنون میشم
نشد که نداریم، فکر کنم با حلقه بهترین راه باشه

Farshid007
دوشنبه 13 تیر 1390, 13:59 عصر
فکر کنم با این لینک این تاپیک کامل تر باشه:
http://barnamenevis.org/showthread.php?292806-%DB%8C%DA%A9-%D8%B1%D9%81%D8%B1%D9%86%D8%B3-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%86%D9%88%D8%B4%D8%AA%D9%86-%D8%AA%D8%A7%D8%B1%DB%8C%D8%AE-%D8%A7%D9%85%D8%B1%D9%88%D8%B2-%D8%AF%D8%B1-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C%D8%AA%D8%A7%D9%86&highlight=

haifa01
سه شنبه 14 تیر 1390, 16:28 عصر
سلام ،خیلی ممنون از راهنماییتون...
من dll هایی رو که زمان شمسی به میلادی و عکس اون رو تبدیل میکنه دارم ،ولی برای استفاده از اون باید چه کار کنم ،البته این رو هم میدونم که باید به reference اضافه بشه و دیگه چیزی نمیدونم،:لبخند:،ولی میخواهم کل برنامه زمان شمسی داشته باشه چه برای ورود اطلاعات و چه برای خروجیشون،خواهش میکنم خیلی واضح توضیح بدین(آقای sun اون متد چی هست؟؟؟)، اکثر توضیحاتی رو که دیدم فقط برای نمایش زمان حال در یک label یا msgbox هست،ولی من میخواهم فیلد هایی از نوع date تعریف کنم که کاربر باید تاریخ خاصی رو توش وارد کنه، وحتما زمان حال نیست،thanks alot

sajadjamalian
چهارشنبه 15 تیر 1390, 13:29 عصر
سلام دوست عزیز:
یه سر به لینک زیر بزن، امیدوارم مشکلت حل بشه:
http://barnamenevis.org/showthread.php?245861-%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D8%AA%D8%A7%D8%B1%DB%8C%D8%AE-%D9%87%D8%A7%DB%8C-%D8%B4%D9%85%D8%B3%DB%8C-%D9%88-%D9%82%D9%85%D8%B1%DB%8C-%D9%88-%D9%85%DB%8C%D9%84%D8%A7%D8%AF%DB%8C-%D8%A8%D9%87-%DB%8C%DA%A9%D8%AF%DB%8C%DA%AF%D8%B1

hosseinenayati_2009
چهارشنبه 15 تیر 1390, 18:01 عصر
سلام
میتونید یه کلاس باز کنید و این ها را داخلش بنویسید اولی میلادی به شمسی و دومی برعکس

using System;
using System.Globalization;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Arvin
{
class miladi2shamsi
{
public string MiladiToShamsi(DateTime _date)
{
PersianCalendar pc = new PersianCalendar();
StringBuilder sb = new StringBuilder();
sb.Append(pc.GetYear(_date).ToString("0000"));
sb.Append("/");
sb.Append(pc.GetMonth(_date).ToString("00"));
sb.Append("/");
sb.Append(pc.GetDayOfMonth(_date).ToString("00"));
return sb.ToString();

}
}
}

شمسی به میلادی
using System;
using System.Globalization;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TalaFroush
{
class shamsi2miladi
{


string dat,sal,mah,roz,ret;
public string shamsitomiladi(string s)
{
dat = s;
sal = dat.Substring(0, 4);
mah = dat.Substring(5, 2);
roz = dat.Substring(8, 2);
PersianCalendar pc = new PersianCalendar();
ret = pc.ToDateTime(Convert.ToInt32(sal), Convert.ToInt32(mah), Convert.ToInt32(roz), 0, 0, 0, 0).ToString();
return ret.ToString();
}
}
}

hosseinenayati_2009
سه شنبه 01 فروردین 1391, 18:37 عصر
سلام
برای اینکه بتونید با چند خط کد تاریخ ها را عوض کنید همون خط کد ها را قبلا گذاشتم را وارد یه کلاس کنید و اون کلاس را فراخوانی کنید. البته این
using System.Globalization; vh را داخل کلاس بنویسید. و کلاس را فرخوانی کنید
من فایل کلاس را attach میکنم.

myjoker
جمعه 05 اردیبهشت 1393, 12:36 عصر
این کلاس فقط میلادی تو شمسی است .:گریه::قلب:

NASA's Spaceman
جمعه 05 اردیبهشت 1393, 17:54 عصر
سلام
از متد های آماده استفاده کن
با سپاس Spaceman

مطهره ابراهیمی
سه شنبه 30 شهریور 1395, 14:12 عصر
سلام این الگوریتم تاریخ شمسی به میلادی را تبدیل نمیکنه من تستش کردم ممکنه درستش کنید لازمش دارم

alexmcse
سه شنبه 30 شهریور 1395, 21:18 عصر
سلام این الگوریتم تاریخ شمسی به میلادی را تبدیل نمیکنه من تستش کردم ممکنه درستش کنید لازمش دارم

به این لینک رجوع کنید

http://barnamenevis.org/showthread.php?196747-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D9%87%D8%A7%DB%8C-Open-Source&p=2341826#post2341826

marziyehnami
سه شنبه 10 مرداد 1396, 10:52 صبح
سلام
برای اینکه بتونید با چند خط کد تاریخ ها را عوض کنید همون خط کد ها را قبلا گذاشتم را وارد یه کلاس کنید و اون کلاس را فراخوانی کنید. البته این
using System.Globalization; vh را داخل کلاس بنویسید. و کلاس را فرخوانی کنید
من فایل کلاس را attach میکنم.


برای فراخوانی این کلاس چکاری کردید؟

lordcrusader21
چهارشنبه 12 تیر 1398, 10:09 صبح
سلام
میتونید یه کلاس باز کنید و این ها را داخلش بنویسید اولی میلادی به شمسی و دومی برعکس

using System;
using System.Globalization;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Arvin
{
class miladi2shamsi
{
public string MiladiToShamsi(DateTime _date)
{
PersianCalendar pc = new PersianCalendar();
StringBuilder sb = new StringBuilder();
sb.Append(pc.GetYear(_date).ToString("0000"));
sb.Append("/");
sb.Append(pc.GetMonth(_date).ToString("00"));
sb.Append("/");
sb.Append(pc.GetDayOfMonth(_date).ToString("00"));
return sb.ToString();

}
}
}

شمسی به میلادی
using System;
using System.Globalization;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TalaFroush
{
class shamsi2miladi
{


string dat,sal,mah,roz,ret;
public string shamsitomiladi(string s)
{
dat = s;
sal = dat.Substring(0, 4);
mah = dat.Substring(5, 2);
roz = dat.Substring(8, 2);
PersianCalendar pc = new PersianCalendar();
ret = pc.ToDateTime(Convert.ToInt32(sal), Convert.ToInt32(mah), Convert.ToInt32(roz), 0, 0, 0, 0).ToString();
return ret.ToString();
}
}
}

داداش کارت عالی بود دمت گرم