mahdilotfi 0 ارسال شده در 16 شهریور، ۱۳۹۷ اشتراک گذاری ارسال شده در 16 شهریور، ۱۳۹۷ سلام بی زحمت اگه میشه یکی چگونگی استفاده از توابع زیر رو بگه : DateTime.Add DateTime.DateParse DateTime.DateTimeParse DateTime.GetDayOfWeek DateTime.GetHour DateTime.TimeParse DateTime.TicksPerHour مثلا چرا وقتی خط زی رو مینویسم 3 رو لاگ میکنه Log(DateTime.GetHour(1)) لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
rasool.g 135 ارسال شده در 16 شهریور، ۱۳۹۷ اشتراک گذاری ارسال شده در 16 شهریور، ۱۳۹۷ خیلی ساده هستش. قبل از هر چیز در صورت استفاده از شبیه ساز ساعت،تاریخ و منطقه زمانی اون رو تنظیم کنید. در کامپیوتر و سیستم های دیجیتال زمان به صورت یک عدد ذخیره و پردازش میشه که اون عدد معمولا تعداد میلی ثانیه از یک تاریخ و ساعت مشخص و ثابت (00:00:00 1 January 1970 برای اندروید) تا زمان مورد نظر هستش. ویکیپدیا در واقع تاریخ و ساعت زیر برای اندروید مبنا هستش. 1/1/1970 00:00:00,000 واحدش ممکنه میلی ثانیه یا چیز دیگه ای باشه که بهش یک "تیک" tick میگن. برای مثال متد زیر زمان حاضر رو به عدد برمیگردونه که برابر هستش با تعداد میلی ثانیه های بین الان تا نیمه شب 1 January 1970 Log(DateTime.Now) خروجی logs: 1536343954896 با دو متد زیر می تونید اون عدد رو به فرمت قابل فهم برای انسان تبدیل کنید (تبدیل عدد به متن تاریخ و ساعت). یعنی عدد 1536343954896 رو که مثلا نشان دهنده تعداد میلی ثانیه از تاریخ " 1 January 1970 " تا الان هستش رو تبدیل میکنه به متنی به این شکل "03/05/2018 22:53:12" Dim d As Long = DateTime.Now log(d) Log("d: The date is: " & DateTime.Date(d) & " The time is: " & DateTime.Time(d)) logs: 1536343546370 d: The date is: 09/07/2018 The time is: 22:08:03 مثال کامل و دیگر توضیحات : Sub Activity_Create(FirstTime As Boolean) DateTime.DateFormat = "MM/dd/yyyy" DateTime.TimeFormat = "HH:mm:ss" Dim a As Long = DateTime.TimeParse("13:22:55") Dim b As Long = DateTime.DateParse("02/23/2017") Dim c As Long = DateTime.DateTimeParse("04/23/2001","23:11:55") Dim d As Long = DateTime.Now Dim t As Long = DateTime.Add(c, 1, 2, 3) Dim Tomorrow As Long Tomorrow = DateTime.Add(d, 0, 0, 1) Log("The date is: " & DateTime.Date(0) & " The time is: " & DateTime.Time(0)) Log("a: The date is: " & DateTime.Date(a) & " The time is: " & DateTime.Time(a)) Log("b: The date is: " & DateTime.Date(b) & " The time is: " & DateTime.Time(b)) Log("c: The date is: " & DateTime.Date(c) & " The time is: " & DateTime.Time(c)) Log("d=" & d) Log("d: The date is: " & DateTime.Date(d) & " The time is: " & DateTime.Time(d)) Log("t: The date is: " & DateTime.Date(t) & " The time is: " & DateTime.Time(t)) Log("Tomorrow: The date is: " & DateTime.Date(Tomorrow) & " The time is: " & DateTime.Time(Tomorrow)) Log("----------") Log(DateTime.TicksPerMinute) Log(DateTime.TicksPerHour) Log(DateTime.TicksPerDay) Log("----------") Log(DateTime.Date(DateTime.Now) &" "& DateTime.Time(DateTime.Now)) Log(DateTime.GetDayOfWeek(DateTime.Now)) Log(DateTime.GetDayOfWeek(Tomorrow)) Log(DateTime.GetHour(DateTime.Now)) Log("----------") Dim bt As Long = 0 Log(DateTime.Date(bt) & " "& DateTime.Time(bt)) Log(DateTime.GetHour(bt)) DateTime.SetTimeZone(4.5) Log(DateTime.GetHour(bt)) DateTime.SetTimeZone(0.0) Log(DateTime.GetHour(bt)) End Sub خروجی برنامه logs: The date is: 01/01/1970 The time is: 03:30:00 a: The date is: 09/07/2018 The time is: 13:22:55 b: The date is: 02/23/2017 The time is: 00:00:00 c: The date is: 04/23/2001 The time is: 23:11:55 d=1536348387036 d: The date is: 09/07/2018 The time is: 23:56:27 t: The date is: 06/26/2002 The time is: 23:11:55 Tomorrow: The date is: 09/08/2018 The time is: 23:56:27 ---------- 60000 3600000 86400000 ---------- 09/07/2018 23:56:27 6 7 23 ---------- 01/01/1970 03:30:00 3 4 0 با دو متد زیر DateTime.DateFormat = "MM/dd/yyyy" DateTime.DateFormat = "yyyy-MM-dd" DateTime.TimeFormat = "HH:mm:ss" فرمت متنی تاریخ و ساعت رو مشخص میکنید که برای تبدیل زمان (تعداد تیک ها یا میلی ثانیه ها) به متن زمان-ساعت و یا برعکسش استفاده میشه . علائم خاصی داره که میتونید برای مثال تو این لینک ببینید. سه متد زیر زمان و تاریخ رو به متن میگیره و به عدد قابل پردازش توسط سیستم (تعداد میلی ثانیه ها یا تیک ها) تبدیل میکنه Dim a As Long = DateTime.TimeParse("13:22:55") Dim b As Long = DateTime.DateParse("02/23/2017") Dim c As Long = DateTime.DateTimeParse("04/23/2001","23:11:55") این کد 1 سال و 2 ماه 3 روز به تاریخ مورد نظر اضافه میکنه Dim t As Long = DateTime.Add(c, 1, 2, 3) این کد یک روز به تاریخ مورد نظر اضافه میکنه که میشه فردای اون روز Dim Tomorrow As Long Tomorrow = DateTime.Add(d, 0, 0, 1) کد زیر تعداد میلی ثانیه در روز رو برمیگردونه که برابر هستش با 24*60*60*1000=86400000 Log(DateTime.TicksPerDay) کد زیر تاریخ رو میگیره و روز هفته رو به عدد برمیگردونه Log(DateTime.GetDayOfWeek(DateTime.Now)) به صورت پیشفرض 1 یکشنبه 2 دوشنبه 3 سه شنبه 4 چهارشنبه 5 پنج شنبه 6 جمعه 7 شنبه کد زیر ساعت رو بر میگردونه Log(DateTime.GetHour(DateTime.Now)) با متد زیر می تونید منطقه زمانی رو تعییر بدید DateTime.SetTimeZone(4.5) +4:30 = 4.5 -3:45 = - 3.75 لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
rasool.g 135 ارسال شده در 16 شهریور، ۱۳۹۷ اشتراک گذاری ارسال شده در 16 شهریور، ۱۳۹۷ در 3 ساعت قبل، mahdilotfi گفته است : مثلا چرا وقتی خط زی رو مینویسم 3 رو لاگ میکنه Log(DateTime.GetHour(1)) 1 میلی ثانیه بعد از تاریخ مبنا میشه 1/1/1970 00:00:00,001 که میشه ساعت 0 یا 12 بامداد پس چرا ساعت 3 رو برمیگردونه ؟ چون منطقه زمانی گوشی احتمالا روی +3 یا مثلا 3:30+ تنظیم شده و در اون منطقه و در اون تاریخ و ساعت، ساعت 3 بامداد هستش. لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
mahdilotfi 0 ارسال شده در 17 شهریور، ۱۳۹۷ سازنده اشتراک گذاری ارسال شده در 17 شهریور، ۱۳۹۷ در 2 ساعت قبل، rasool.g گفته است : 1 میلی ثانیه بعد از تاریخ مبنا میشه 1/1/1970 00:00:00,001 که میشه ساعت 0 یا 12 بامداد پس چرا ساعت 3 رو برمیگردونه ؟ چون منطقه زمانی گوشی احتمالا روی +3 یا مثلا 3:30+ تنظیم شده و در اون منطقه و در اون تاریخ و ساعت، ساعت 3 بامداد هستش. در 2 ساعت قبل، rasool.g گفته است : خیلی ساده هستش. قبل از هر چیز در صورت استفاده از شبیه ساز ساعت،تاریخ و منطقه زمانی اون رو تنظیم کنید. در کامپیوتر و سیستم های دیجیتال زمان به صورت یک عدد ذخیره و پردازش میشه که اون عدد معمولا تعداد میلی ثانیه از یک تاریخ و ساعت مشخص و ثابت (00:00:00 1 January 1970 برای اندروید) تا زمان مورد نظر هستش. ویکیپدیا در واقع تاریخ و ساعت زیر برای اندروید مبنا هستش. 1/1/1970 00:00:00,000 واحدش ممکنه میلی ثانیه یا چیز دیگه ای باشه که بهش یک "تیک" tick میگن. برای مثال متد زیر زمان حاضر رو به عدد برمیگردونه که برابر هستش با تعداد میلی ثانیه های بین الان تا نیمه شب 1 January 1970 Log(DateTime.Now) خروجی logs: 1536343954896 با دو متد زیر می تونید اون عدد رو به فرمت قابل فهم برای انسان تبدیل کنید (تبدیل عدد به متن تاریخ و ساعت). یعنی عدد 1536343954896 رو که مثلا نشان دهنده تعداد میلی ثانیه از تاریخ " 1 January 1970 " تا الان هستش رو تبدیل میکنه به متنی به این شکل "03/05/2018 22:53:12" Dim d As Long = DateTime.Now log(d) Log("d: The date is: " & DateTime.Date(d) & " The time is: " & DateTime.Time(d)) logs: 1536343546370 d: The date is: 09/07/2018 The time is: 22:08:03 مثال کامل و دیگر توضیحات : Sub Activity_Create(FirstTime As Boolean) DateTime.DateFormat = "MM/dd/yyyy" DateTime.TimeFormat = "HH:mm:ss" Dim a As Long = DateTime.TimeParse("13:22:55") Dim b As Long = DateTime.DateParse("02/23/2017") Dim c As Long = DateTime.DateTimeParse("04/23/2001","23:11:55") Dim d As Long = DateTime.Now Dim t As Long = DateTime.Add(c, 1, 2, 3) Dim Tomorrow As Long Tomorrow = DateTime.Add(d, 0, 0, 1) Log("The date is: " & DateTime.Date(0) & " The time is: " & DateTime.Time(0)) Log("a: The date is: " & DateTime.Date(a) & " The time is: " & DateTime.Time(a)) Log("b: The date is: " & DateTime.Date(b) & " The time is: " & DateTime.Time(b)) Log("c: The date is: " & DateTime.Date(c) & " The time is: " & DateTime.Time(c)) Log("d=" & d) Log("d: The date is: " & DateTime.Date(d) & " The time is: " & DateTime.Time(d)) Log("t: The date is: " & DateTime.Date(t) & " The time is: " & DateTime.Time(t)) Log("Tomorrow: The date is: " & DateTime.Date(Tomorrow) & " The time is: " & DateTime.Time(Tomorrow)) Log("----------") Log(DateTime.TicksPerMinute) Log(DateTime.TicksPerHour) Log(DateTime.TicksPerDay) Log("----------") Log(DateTime.Date(DateTime.Now) &" "& DateTime.Time(DateTime.Now)) Log(DateTime.GetDayOfWeek(DateTime.Now)) Log(DateTime.GetDayOfWeek(Tomorrow)) Log(DateTime.GetHour(DateTime.Now)) Log("----------") Dim bt As Long = 0 Log(DateTime.Date(bt) & " "& DateTime.Time(bt)) Log(DateTime.GetHour(bt)) DateTime.SetTimeZone(4.5) Log(DateTime.GetHour(bt)) DateTime.SetTimeZone(0.0) Log(DateTime.GetHour(bt)) End Sub خروجی برنامه logs: The date is: 01/01/1970 The time is: 03:30:00 a: The date is: 09/07/2018 The time is: 13:22:55 b: The date is: 02/23/2017 The time is: 00:00:00 c: The date is: 04/23/2001 The time is: 23:11:55 d=1536348387036 d: The date is: 09/07/2018 The time is: 23:56:27 t: The date is: 06/26/2002 The time is: 23:11:55 Tomorrow: The date is: 09/08/2018 The time is: 23:56:27 ---------- 60000 3600000 86400000 ---------- 09/07/2018 23:56:27 6 7 23 ---------- 01/01/1970 03:30:00 3 4 0 با دو متد زیر DateTime.DateFormat = "MM/dd/yyyy" DateTime.DateFormat = "yyyy-MM-dd" DateTime.TimeFormat = "HH:mm:ss" فرمت متنی تاریخ و ساعت رو مشخص میکنید که برای تبدیل زمان (تعداد تیک ها یا میلی ثانیه ها) به متن زمان-ساعت و یا برعکسش استفاده میشه . علائم خاصی داره که میتونید برای مثال تو این لینک ببینید. سه متد زیر زمان و تاریخ رو به متن میگیره و به عدد قابل پردازش توسط سیستم (تعداد میلی ثانیه ها یا تیک ها) تبدیل میکنه Dim a As Long = DateTime.TimeParse("13:22:55") Dim b As Long = DateTime.DateParse("02/23/2017") Dim c As Long = DateTime.DateTimeParse("04/23/2001","23:11:55") این کد 1 سال و 2 ماه 3 روز به تاریخ مورد نظر اضافه میکنه Dim t As Long = DateTime.Add(c, 1, 2, 3) این کد یک روز به تاریخ مورد نظر اضافه میکنه که میشه فردای اون روز Dim Tomorrow As Long Tomorrow = DateTime.Add(d, 0, 0, 1) کد زیر تعداد میلی ثانیه در روز رو برمیگردونه که برابر هستش با 24*60*60*1000=86400000 Log(DateTime.TicksPerDay) کد زیر تاریخ رو میگیره و روز هفته رو به عدد برمیگردونه Log(DateTime.GetDayOfWeek(DateTime.Now)) به صورت پیشفرض 1 یکشنبه 2 دوشنبه 3 سه شنبه 4 چهارشنبه 5 پنج شنبه 6 جمعه 7 شنبه کد زیر ساعت رو بر میگردونه Log(DateTime.GetHour(DateTime.Now)) با متد زیر می تونید منطقه زمانی رو تعییر بدید DateTime.SetTimeZone(4.5) +4:30 = 4.5 -3:45 = - 3.75 واقعا خیلی خیلی ممنون لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
mahdilotfi 0 ارسال شده در 17 شهریور، ۱۳۹۷ سازنده اشتراک گذاری ارسال شده در 17 شهریور، ۱۳۹۷ میبخشید من یه سوال دیگه هم دارم و داخل activity_create یه سرویس رو استارت میکنم داخل سرویس یه تایمر فعال میشه و من میخوام فعال بمونه اما وقتی روی دکمه بک کلیک میشه و اکتیویتی برنامه بسته میشه اون تایمر هم غیر فعال میشه میخواستم بدونم چطوری میشه کاری کرد که فعال بمونه لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
rasool.g 135 ارسال شده در 17 شهریور، ۱۳۹۷ اشتراک گذاری ارسال شده در 17 شهریور، ۱۳۹۷ در 1 ساعت قبل، mahdilotfi گفته است : میبخشید من یه سوال دیگه هم دارم و داخل activity_create یه سرویس رو استارت میکنم داخل سرویس یه تایمر فعال میشه و من میخوام فعال بمونه اما وقتی روی دکمه بک کلیک میشه و اکتیویتی برنامه بسته میشه اون تایمر هم غیر فعال میشه میخواستم بدونم چطوری میشه کاری کرد که فعال بمونه سلام. باید یه موضوع جدا گونه ایجاد کنید یا تو موضوع های مرتبط مثل موضوع زیر سوالتون رو بپرسید. اونجا کامل تر بهتون جواب میدم. در جواب سوالتون باید سرویس رو foreground کنید. Android Tutorial - Automatic Foreground Mode | B4X Community - Android, iOS, desktop, server and IoT programming tools لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
سوال
mahdilotfi 0
سلام بی زحمت اگه میشه یکی چگونگی استفاده از توابع زیر رو بگه :
DateTime.Add DateTime.DateParse DateTime.DateTimeParse DateTime.GetDayOfWeek DateTime.GetHour DateTime.TimeParse DateTime.TicksPerHour
مثلا چرا وقتی خط زی رو مینویسم 3 رو لاگ میکنه
Log(DateTime.GetHour(1))
لینک ارسال
به اشتراک گذاری در سایت های دیگر
5 پاسخ به این سوال تاکنون داده شده است
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.