PDA

View Full Version : سوال: گرفتن تاریخ میلادی در ویندوز هایی که تاریخش میلادی نیست



amir20611
چهارشنبه 23 آذر 1390, 11:48 صبح
سلام ، برای بدست آوردن تاریخ ویندوز از دستور now استفاده میکنم ، مشکل اینجاست که اگر تاریخ ویندوز قمری باشه ، با این دستور تاریخ قمری رو بهم میده ، ولی من تاریخ میلادی رو میخوام

parsaid
چهارشنبه 23 آذر 1390, 12:16 عصر
خب تبدیلش کن

amirdifraxe1
چهارشنبه 23 آذر 1390, 12:24 عصر
باید از این استفاده کنید
Imports System.Globalization
Imports System.Globalization.PersianCalendar
کد بدست آوردن تاریخ مثل 1390/09/23
کد در کلاس نوشته شود



Imports Microsoft.VisualBasic
Imports System.Globalization

Public Class PCalendar
Dim Calend As New PersianCalendar

Public Function WhatDay() As String
Dim iDayOfMonth As Integer = Calend.GetDayOfMonth(Now)
Dim iMonth As Integer = Calend.GetMonth(Now)
Dim iYear As Integer = Calend.GetYear(Now)
Return String.Format("{0}/{1:00}/{2:00}", iYear, iMonth, iDayOfMonth)
End Function
Public Function WhatDayToString() As String

Dim iDayOfMonth As Integer = Calend.GetDayOfMonth(Now)
Dim iDayOfWeek As Integer = Calend.GetDayOfWeek(Now)
Dim iMonth As Integer = Calend.GetMonth(Now)
Dim iYear As Integer = Calend.GetYear(Now)
Dim SMonth() As String = {"فروردين", "ارديبهشت", "خرداد", "تير", "مرداد", "شهريور", "مهر", "آبان", "آذر", "دي", "بهمن", "اسفند"}
Dim SDay() As String = {"يك شنبه", "دوشنبه", "سه شنبه", "چهار شنبه", "پنج شنبه", "جمعه", "شنبه"}
Return (SDay(iDayOfWeek).ToString & " , " & iDayOfMonth & " " & SMonth(iMonth - 1).ToString & " , " & iYear.ToString)
End Function
End Class

amir20611
چهارشنبه 23 آذر 1390, 12:35 عصر
خب تبدیلش کن

مرسی که جواب دادید ، نمیشه به تاریخ قمری اعتماد کرد و تاریخ میلادی رو بدست بیاریم ، بعضی جاهای دنیا امروز 14/12/2011 برابر 18 ذی الحجه هست بعضی جاهای دیگه 19 ذی الحجه
فکر کنم خیلی ساده تر از این ها میشه تاریخ میلاد رو بدست اورد
اینقدر در مورد تبدیل تاریخ ها صحبت شده که با جستجو نمیشه چیزی پیدا کرد

arash020
چهارشنبه 23 آذر 1390, 12:58 عصر
سلام
دوتا تابع , یکی تبدیل میلادی به شمسی و اونیکی تبدیل شمسی به میلادی که از روی اسمشون هم قابل تشخیص هستش
امیدوارم مفید باشه...!

Function MiladiToShamsi(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.PersianCalendar
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

amir20611
چهارشنبه 23 آذر 1390, 13:08 عصر
Dim iDayOfMonth As Integer = Calend.GetDayOfMonth(Now)



سلام ممنون که جواب دادید ، مشکل من با همین Now هست ، اگر تاریخ ویندوز قمری باشه به شما 1433/01/18 میده نه تاریخ میلادی

http://www.jazzab.net/wp-content/gallery/ghamarivista/v4.jpg