neverlieme
یک شنبه 13 مرداد 1392, 19:09 عصر
سلام
من تقریبا کل پست های سایت رو در این باره زیر و رو کردم
یک فایل dll پیدا کردم که داخلش توابع تبدیلات تاریخ شمسی به میلادی و جود داشت اما نمیشد به عنوان کلاس در وی بی استفاده کرد
میخواستم ببینم دوستان اگه تابع یا فایل dll دارن که میشه این کارو به شکل درست. تاکید می کنم درست و حداقل با دقت چند صد سال دارن رو ضمیمه کنن.
ممنون
Fery666
دوشنبه 14 مرداد 1392, 00:42 صبح
این کد برای تبدیل میلادی به شمسی هستش :
توی ماژول بریزید :
Module Module1
Dim MYear As Double = CDbl(Tarikh.Now.Year)
Dim Day As Integer = CInt(Tarikh.Now.Day)
Dim Month As Integer = CInt(Tarikh.Now.Month)
Dim WeekNo As Integer = CInt(Tarikh.Now.DayOfWeek)
Dim Kabise As Integer
Dim SYear As Double = (MYear - 621)
Dim Tarikh As Date
Dim rooz As String
Dim Moon As String
Dim NM As String
Public Function MiladiToShamsi(ByVal MDate As Date) As String
MiladiToShamsi = ""
Dim pc As New Globalization.PersianCalendar
Dim Sal As Integer = pc.GetYear(MDate)
Dim Mah As Integer = pc.GetMonth(MDate)
Dim Roz As Integer = pc.GetDayOfMonth(MDate)
Select Case WeekNo
Case 1
rooz = "دوشنبه"
Case 2
rooz = "سه شنبه "
Case 3
rooz = "چهار شنبه"
Case 4
rooz = "پنجشنبه"
Case 5
rooz = "جمعه"
Case 6
rooz = "شنبه"
Case 0
rooz = "یکشنبه"
End Select
Select Case Format(Mah, "0")
Case 1
Moon = "فروردین"
Case 2
Moon = "اردیبهشت"
Case 3
Moon = "خرداد"
Case 4
Moon = "تیر"
Case 5
Moon = "مرداد"
Case 6
Moon = "شهریور"
Case 7
Moon = "مهر"
Case 8
Moon = "آبان"
Case 9
Moon = "آذر"
Case 10
Moon = "دی"
Case 11
Moon = "بهمن"
Case 12
Moon = "اسفند"
End Select
MiladiToShamsi = rooz & " " & Format(Roz, "00") & " " & Moon & " " & Format(Sal, "0000")
Return MiladiToShamsi
End Function
Public Function Miladi()
Select Case Month
Case 1
NM = "ژانویه"
Case 2
NM = "فوریه"
Case 3
NM = "مارس"
Case 4
NM = "آوریل"
Case 5
NM = "مه"
Case 6
NM = "ژوئن"
Case 7
NM = "ژولای"
Case 8
NM = "آگوست"
Case 9
NM = "آگوست"
Case 10
NM = "اکتبر"
Case 1
NM = "نوامبر"
Case 12
NM = "دسامبر"
End Select
Miladi = Day & " " & NM & " " & MYear
Return Miladi
End Function
End Module
اینم برای نمایش در فرم هستش :
Dates.Text = MiladiToShamsi(Date.Now)
برای شمسی به میلادی رو ندارم :افسرده:
alonmahdi
دوشنبه 14 مرداد 1392, 01:21 صبح
سلام من این کد ها رو البته به زبان سی شارپ دارم ببین شاید کارت راه بیوفته
1-
DateTime dt = new DateTime(2010, 3, 21,12,26,10);
lbl1.Text = dt.ToShortTimeString();
2-
DateTime dt = new DateTime(2010, 3, 21,12,26,10);
lbl1.Text = dt.ToShortDateString();
3-
DateTime dt = new DateTime(2010, 3, 21,12,26,10);
lbl1.Text = dt.ToString();
4- use of system date: DateTime.Now
DateTime dt2 = DateTime.Now;
lbl1.Text = dt2.ToString();
5-
DateTime dt2 = DateTime.Now;
lbl1.Text = dt2.ToLongTimeString();
6- 10 days,year,minutes ---->Before, after
DateTime dt2 = DateTime.Now;
DateTime dt3 = dt2.AddDays(10);
lbl1.Text = dt.ToString();
7-
DateTime dt = new DateTime(2010,4, 21,12,26,10);
DateTime dt3 = dt.AddDays(10);
lbl1.Text = dt3.ToString();
8-
DateTime dt = new DateTime(2010,4, 21,12,26,10,7);
lbl1.Text = dt.DayOfWeek.ToString();
9-
DateTime dt = new DateTime(2010,4, 21,12,26,10,7);
lbl1.Text = dt.DayOfYear.ToString();
10-
DateTime dt = new DateTime(2010,4, 21,12,26,10,7);
lbl1.Text = dt.Day.ToString();
11-
DateTime dt = new DateTime(2010,4, 21,12,26,10,7);
lbl1.Text = dt.Date.Month.ToString();
12-
DateTime dt = new DateTime(2010,4, 21,12,26,10,7);
lbl1.Text = DateTime.DaysInMonth(2010, 4).ToString();
13-
3/12/1988
2010/2/13
DateTime dt = new DateTime(2010,4, 21,12,26,10,7);
lbl1.Text = DateTime.Parse("3/12/2009").ToString()
14-
DateTime dt = new DateTime(2010,4, 21,12,26,10,7);
lbl1.Text = DateTime.Now.Date.Month.ToString();
15-
DateTime dt = new DateTime(2010,4, 21,12,26,10,7);
lbl1.Text = DateTime.UtcNow.ToString();
DateTime -----> persian Calnedar:
System.Globalization.PersianCalendar pc = new System.Globalization.PersianCalendar();
label1.Text = pc.ToDateTime(1366,4,6, 5, 4, 3, 2).ToString();
-------------
16-
System.Globalization.PersianCalendar pc = new System.Globalization.PersianCalendar();
label1.Text = pc.GetYear(DateTime.Now).ToString();
------------
17-
DayOfWeek dow = pc.GetDayOfWeek(DateTime.Now);
label1.Text = dow.ToString();
neverlieme
دوشنبه 14 مرداد 1392, 07:05 صبح
پست آقای fery666 عالی بود فقط بالعکس رو نداشت
کسی هست که بالعکسش رو داشته باشه؟
یعنی تبدیل شمسی به میلادی؟
Fery666
دوشنبه 14 مرداد 1392, 14:14 عصر
اینم برای تبدیل تاریخ شمسی به میلادی و میلادی به هجری قمری :
یه Button و 2 تکس باکس ایجاد کنید و این کد رو توی فرم کپی کنید .
Public Class Form1
Function MiladiTohijri(ByVal Year As Integer, ByVal Month As Integer, ByVal Day As Integer) As String
Try
Dim Date_M As Date = Year & "/" & Month & "/" & Day
Dim Date_Sh As New Globalization.HijriCalendar
Return Date_Sh.GetYear(Date_M) & "/" & Format(Date_Sh.GetMonth(Date_M), "00") & "/" & Format(Date_Sh.GetDayOfMonth(Date_M), "00")
Catch ex As Exception
Return 0
End Try
End Function
Function ShamsiToMiladi(ByVal ShamsiDate As String) As String
If IsNumeric(ShamsiDate.Replace("/", "")) = False Then Return 0
Try
If ShamsiDate.Length <> 10 Then Return 0
Dim Date_Sh As New Globalization.PersianCalendar()
Dim Date_M As DateTime = Date_Sh.ToDateTime(ShamsiDate.Substring(0, 4), ShamsiDate.Substring(5, 2), _
ShamsiDate.Substring(8, 2), _
0, 0, 0, 0, _
Globalization.PersianCalendar.PersianEra)
Return Date_M.ToShortDateString
Catch ex As Exception
Return 0
End Try
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
TextBox1.Text = MiladiTohijri(2013, 8, 5)
TextBox2.Text = ShamsiToMiladi("1392/05/14")
End Sub
End Class
neverlieme
سه شنبه 15 مرداد 1392, 16:31 عصر
ربطی به برنامه نویسی نداره ولی اگه دوستان به جای شمسی از خورشیدی تو تعریف متغیراتون و است توابعتون استفاده می کردید خیلی بهتر بود.
ممنون
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.