PDA

View Full Version : سوال: نمایش تاریخ (تاریخ روز ، عدم نمایش تاریخ سیستم)



rezawili
چهارشنبه 04 آبان 1390, 02:33 صبح
دوستان من با هزار دردسر یه dll پیداکردم که بتونه تاریخ میلادی رو به شمسی تبدیل کنه اما تاریخ سیستم رو نمیخوام میخوام تاریخ روز باشه مثلا اگه کسی تاریخش مال 5ساله پیش باشه میخوام تو صفحه تاریخ روز باشه که ربطی به سیستم نداشته باشه

moferferi
چهارشنبه 04 آبان 1390, 10:03 صبح
سلام
هزار دردسر نداره.
چند سالی هست که مایکروسافت کلاس persian calendar را ارائه کرده.
کافیه مقدار تاریخ فعلی یا حالا هر تاریخی که شما مد نظر دارین بهش بدین خودش تبیدل به شمسی میکنه
public static string rooz_date()
{
DateTime thisDate = DateTime.Now;
string sal, mah, rooz, em_date;
PersianCalendar pc = new PersianCalendar();
sal = pc.GetYear(thisDate).ToString();
mah = pc.GetMonth(thisDate).ToString();
rooz = pc.GetDayOfMonth(thisDate).ToString();
em_date = sal + "/" + mah + "/" + rooz;


return em_date;
}

m.toosi
جمعه 06 آبان 1390, 15:05 عصر
من هم همین مشکل را دارم
ولی من به ربان vb مینویسم
تبدلیش کردم به زبان VB اینجوری شد
Public Shared Function rooz_date() As String
Dim thisDate As DateTime = DateTime.Now
Dim sal As String, mah As String, rooz As String, em_date As String
Dim pc As New PersianCalendar()
sal = pc.GetYear(thisDate).ToString()
mah = pc.GetMonth(thisDate).ToString()
rooz = pc.GetDayOfMonth(thisDate).ToString()
em_date = sal & "/" & mah & "/" & rooz
Return em_date
End Function

من میخوام تاریخ رو در یک لیبل خاص نشون بدم به چه صورت دستور بنویسم
مثلا
lbldate.text=em_date.text

m.toosi
جمعه 06 آبان 1390, 16:22 عصر
خودم مشکل خودم بر طرف کردم
اینجا مینویسم برای بقیه دوستان تازه کار مثل خودم

Dim thisDate As DateTime = DateTime.Now
Dim pc As New PersianCalendar()
lblyear.Text = pc.GetYear(thisDate).ToString()
lblmonth.Text = pc.GetMonth(thisDate).ToString()
lblday.Text = pc.GetDayOfMonth(thisDate).ToString()

در ضمن این خط هم در ابتدا برای فراخوانی نوشته شود

Imports System.Globalization

باتشکر از همه

saadi2
جمعه 06 آبان 1390, 16:45 عصر
سلام چرا من وقتی سایت رو رو سرور آپلود میکنم به جای ساعت 12 شب ساعت 11 صبح به تاریخ امروز میره. شاید تاریخ و ساعت هاست به وقت ایران نیست.
راهی هست که بشه درستش کنم؟ چجوری تاریخ و ساعت هاست رو میشه تنظیم کرد؟

asif1358
جمعه 06 آبان 1390, 17:20 عصر
من هم همین مشکل را دارم
ولی من به ربان vb مینویسم
تبدلیش کردم به زبان VB اینجوری شد
Public Shared Function rooz_date() As String
Dim thisDate As DateTime = DateTime.Now
Dim sal As String, mah As String, rooz As String, em_date As String
Dim pc As New PersianCalendar()
sal = pc.GetYear(thisDate).ToString()
mah = pc.GetMonth(thisDate).ToString()
rooz = pc.GetDayOfMonth(thisDate).ToString()
em_date = sal & "/" & mah & "/" & rooz
Return em_date
End Function

من میخوام تاریخ رو در یک لیبل خاص نشون بدم به چه صورت دستور بنویسم
مثلا
lbldate.text=em_date.text

سلام
خوب راحت بنویسید:


lbldate.Text=rooz_date()

rahmatr
جمعه 06 آبان 1390, 18:34 عصر
کلاس زیر را به پروژه اضافه کن :

using System;
using System.Globalization;

public static class IranDate
{
static PersianCalendar persianCalendar = new PersianCalendar();

public static DateTime Now
{
get
{
return DateTime.UtcNow.AddMinutes(210);
}
}

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 iranDate = IranDate.Now.ToShamsi();
string iranTime = IranDate.Now.TimeOfDay.ToString();

DateTime latinDate = "1390/08/09".ToMiladi();


کاری هم به ساعت سرور نداریم که چقدر با ساعت ما اختلاف دارد، چون از DateTime.UtcNow استفاده کردیم.
اون 210 هم اختلاف دقیقه ایران با Utc است.

m.toosi
جمعه 06 آبان 1390, 19:33 عصر
سلام چرا من وقتی سایت رو رو سرور آپلود میکنم به جای ساعت 12 شب ساعت 11 صبح به تاریخ امروز میره. شاید تاریخ و ساعت هاست به وقت ایران نیست.
راهی هست که بشه درستش کنم؟ چجوری تاریخ و ساعت هاست رو میشه تنظیم کرد؟

سلام
منم مشکل شما را داشتم و با اجازتون یک post جدید ایجاد کردم
تشریف بیارید اونجا ومشکلتون را اونجا برطرف کنید
http://barnamenevis.org/showthread.php?311060-%D9%86%D9%85%D8%A7%DB%8C%D8%B4-%D8%B3%D8%A7%D8%B9%D8%AA-%D8%AF%DB%8C%D8%AC%DB%8C%D8%AA%D8%A7%D9%84-%D8%AF%D8%B1-%D8%B3%D8%A7%DB%8C%D8%AA&p=1365786#post1365786