با عرض سلام لطفا برای مشکل کار با تاریخ سری به سایت www.nano3oft.com بزنید . دیگه فکر نکنم مشکل کار با تاریخ داشته باشید .
Printable View
با عرض سلام لطفا برای مشکل کار با تاریخ سری به سایت www.nano3oft.com بزنید . دیگه فکر نکنم مشکل کار با تاریخ داشته باشید .
من يك برنامه با vb.netمي خوام كه هم تاريخ شمسي باشد هم تاريخ ميلادي براي ده سال كار كند اگر ممكن سورس كدش رو برايم بكذاريد ازشما ها متشكرم
این DLL تعدادی properties و یه متد برای تبدیل DateTime به تقویم شمسی فراهم کرده.
البته من از خود PersianCalendar تو .Net Framework استفاده کردم و این کلاس رو برای راحتی کار و سریع تر شدن انجام پروژه نوشتم.
تمام پروپرتی ها کامنت گذاری شدند و به راحتی متوجه میشید که هر کدام چه مقداری رو بر می گردونه.
لینک دانلود
کاش کمی توضیحتون بیشتر بود
یک راه حل ساده برای استفاده از تاریخ شمسی در دات نت 3.5 به بالا :
کلاس زیر را به پروژه اضافه کنید :
using System;
using System.Globalization;
public static class ShamsiDate
{
static PersianCalendar persianCalendar = new PersianCalendar();
public static string ToShamsi(this DateTime miladiDate)
{
string year = persianCalendar.GetYear(miladiDate).ToString();
string month = persianCalendar.GetMonth(miladiDate).ToString().Pa dLeft(2, '0');
string day = persianCalendar.GetDayOfMonth(miladiDate).ToString ().PadLeft(2, '0');
return year + "/" + month + "/" + day;
}
public static DateTime ToMiladi(this string shamsiDate)
{
int year = int.Parse(shamsiDate.Substring(0, 4));
int month = int.Parse(shamsiDate.Substring(5, 2));
int day = int.Parse(shamsiDate.Substring(8, 2));
return persianCalendar.ToDateTime(year, month, day, 0, 0, 0, 0);
}
}
بعد هر جا خواستید استفاده کنید. مثل این :
string shamsiToday = DateTime.Now.ToShamsi();
DateTime miladiDate = "1389/10/11".ToMiladi();
http://www.fourmilab.ch/documents/calendar/
این سایت انواع مختلف تقویم ها رو توضیح داده و قابلیت تبدیل بین اونها رو داره و سرس کدها به جاوااسکریپت قابل دریافته.
من میلادی به شمسی اون رو به پیتون تبدیل کردم که اینجا قرار میدم و اگه اشتباه نکنم بنا به ادعای نویسندش تا ۵هزار سال بعد از میلاد رو جواب میده!
ضمیمه 67665
و روش استفاده:
>>> import PersianDate
>>> PersianDate.today()
(1389.0, 12.0, 27.0, 5.0)
>>> PersianDate.todayStr()
'\xd8\xac\xd9\x85\xd8\xb9\xd9\x87 27 \xd8\xa7\xd8\xb3\xd9\x81\xd9\x86\xd8\xaf 1389'
>>> PersianDate.greg2persian(1950, 1, 1)
(1328.0, 10.0, 11.0)
>>>
که در آن چون کاراکتر های فارسی unicode اند بصورت کدشده چاب شده اند.
سلام
چطور ميتونم تاريخ قمري در دلفي استفاده كنم از چه چيزي استفاده كنم
لطفا نمونه سورس يا كامپوننتي بگذاريد
باتشكر
یک تابع جهت تبدیل تاریخ میلادی به شمسی به زبان vb6
کد HTML:Function MiladiToShamsi(ByVal StrDate As String) As String
Dim IntArrDay(0 To 1, 1 To 12) As Integer
Dim IntArrRuz(0 To 1, 1 To 12) As Integer
Dim IntI, IntChrisToNoruz As Integer
Dim IntKabiseh, IntLeapYear As Integer
Dim IntYear, IntMonth, IntDay As Integer
Dim IntSal, IntMah, IntRuz As Integer
Dim StrFormat As String
IntArrDay(0, 1) = 31: IntArrDay(0, 2) = 28: IntArrDay(0, 3) = 31: IntArrDay(0, 4) = 30
IntArrDay(0, 5) = 31: IntArrDay(0, 6) = 30: IntArrDay(0, 7) = 31: IntArrDay(0, 8) = 31
IntArrDay(0, 9) = 30: IntArrDay(0, 10) = 31: IntArrDay(0, 11) = 30: IntArrDay(0, 12) = 31
IntArrDay(1, 1) = 31: IntArrDay(1, 2) = 29: IntArrDay(1, 3) = 31: IntArrDay(1, 4) = 30
IntArrDay(1, 5) = 31: IntArrDay(1, 6) = 30: IntArrDay(1, 7) = 31: IntArrDay(1, 8) = 31
IntArrDay(1, 9) = 30: IntArrDay(1, 10) = 31: IntArrDay(1, 11) = 30: IntArrDay(1, 12) = 31
IntArrRuz(0, 1) = 31: IntArrRuz(0, 2) = 31: IntArrRuz(0, 3) = 31: IntArrRuz(0, 4) = 31
IntArrRuz(0, 5) = 31: IntArrRuz(0, 6) = 31: IntArrRuz(0, 7) = 30: IntArrRuz(0, 8) = 30
IntArrRuz(0, 9) = 30: IntArrRuz(0, 10) = 30: IntArrRuz(0, 11) = 30: IntArrRuz(0, 12) = 29
IntArrRuz(1, 1) = 31: IntArrRuz(1, 2) = 31: IntArrRuz(1, 3) = 31: IntArrRuz(1, 4) = 31
IntArrRuz(1, 5) = 31: IntArrRuz(1, 6) = 31: IntArrRuz(1, 7) = 30: IntArrRuz(1, 8) = 30
IntArrRuz(1, 9) = 30: IntArrRuz(1, 10) = 30: IntArrRuz(1, 11) = 30: IntArrRuz(1, 12) = 30
IntYear = Year(StrDate)
IntMonth = Month(StrDate)
IntDay = Day(StrDate)
IntSal = IntYear - 622
If IntYear Mod 4 = 0 Then IntLeapYear = 1 Else IntLeapYear = 0 'Barrasi sale kabisel miladi
If IntSal Mod 4 = 3 Then IntKabiseh = 1 Else IntKabiseh = 0 'Barrasi sale kabisel Shamsi
IntChrisToNoruz = 79
IntRuz = 0
IntRuz = IntRuz + IntDay
For IntI = 1 To IntMonth - 1
IntRuz = IntRuz + IntArrDay(IntLeapYear, IntI)
Next IntI
If (IntRuz > IntChrisToNoruz) Then
IntSal = IntSal + 1
IntRuz = IntRuz - IntChrisToNoruz
Else
For IntMah = 1 To 9
IntRuz = IntRuz + IntArrRuz(IntKabiseh, IntMah)
Next IntMah
If (IntKabiseh = 1) Then
IntRuz = IntRuz + 11
Else
IntRuz = IntRuz + 10
End If
End If
IntMah = 1
While (IntRuz > IntArrRuz(IntKabiseh, IntMah))
IntRuz = IntRuz - IntArrRuz(IntKabiseh, IntMah)
IntMah = IntMah + 1
Wend
StrFormat = CStr(IntSal) & "/" & Format$(IntMah, "00") & "/" & Format$(IntRuz, "00")
MiladiToShamsi = StrFormat
End Function
تبديل تاريخ و به دست آوردن تاريخ به زبان #C
C#
ضمیمه 80383ضمیمه 80383
پروژه متن باز تقویم فارسی برای JDK و GWT
http://sourceforge.net/projects/persian/
http://code.google.com/p/persian-calendar/