Jump to content

Os.date Kullanarak Gerisayım Nasıl Yapılır


yakupnun
 Share

Recommended Posts

Merhabalar formda ve indigo formda aramama ramen pek birşey bulamadım bu zaman ve timer fonksiyonlarını öğrenmek için yaptığım bir proje belli bir tarih ve saate geri sayım yaptırmak istiyorum  kodları şöyle yazdım ama hata verdi yanlış yaptığımyesi söyleye bilirseniz sevinirim.

nSaat= os.clock();
nTarih=os.date("%j");
nDeger=Input.GetText("Input1");

if nTarih < nDeger then
 
Label.SetText("nTarih - 1");
else
Label.SetText("Lütfen Tarih giriniz");
end

inputtan girdiğim tarih ve saati sistem saat vetarihi ile karşılaştırıp geri saydıracam eşit olunca inputları ve butonu gösterip tarih ve saat girdirteceğim 

örnek proje; https://yadi.sk/d/PaimwqRskEwCi

 

yardımlarınız için teşekkürler;

Link to comment
Share on other sites

Merhabalar formda ve indigo formda aramama ramen pek birşey bulamadım bu zaman ve timer fonksiyonlarını öğrenmek için yaptığım bir proje belli bir tarih ve saate geri sayım yaptırmak istiyorum  kodları şöyle yazdım ama hata verdi yanlış yaptığımyesi söyleye bilirseniz sevinirim.

nSaat= os.clock();
nTarih=os.date("%j");
nDeger=Input.GetText("Input1");

if nTarih < nDeger then
 
Label.SetText("nTarih - 1");
else
Label.SetText("Lütfen Tarih giriniz");
end

inputtan girdiğim tarih ve saati sistem saat vetarihi ile karşılaştırıp geri saydıracam eşit olunca inputları ve butonu gösterip tarih ve saat girdirteceğim 

örnek proje; https://yadi.sk/d/PaimwqRskEwCi

 

yardımlarınız için teşekkürler;

o kısmi anladım benim yapmak istediğim 

 mesala yılın kaçıncı günündeğiz atıyorum 120

         girilen tarih kaçıncı günde atıyorum 224

-lua .orgdan baktığımda os.date("%j") ile bu gün sayısını alıyordu yanlış anlamadıysam-

şimdi sistem günü 224 ile eşitse inputları gösterecek lütfen tarih girin diyecek değilse

 

doğum gününe xx gün xx saat xx dakka xxsaniye kaldı diyecek. yılın gününü imputtan tarih olarak girip güne nasıl çevirteceğimi

bulamadım  

Link to comment
Share on other sites

  • Editor
function trim(s)
  return (s:gsub("^%s*(.-)%s*$", "%1"))
end

function get_date_parts(date_str)
  _,_,y,m,d=string.find(date_str, "(%d+)-(%d+)-(%d+)")
  return tonumber(y),tonumber(m),tonumber(d)
end

local gTarih = Input.GetText("txtTarih");
if trim(gTarih) ~= "" then
	local yy,mm,dd = get_date_parts(trim(gTarih))
	Dialog.Message("",os.date("*t",os.time{year=yy, month=mm, day=dd}).yday);
end

input a tarihi 

gg-aa-yyyy

şeklinde girmelisin.

Link to comment
Share on other sites

function trim(s)
  return (s:gsub("^%s*(.-)%s*$", "%1"))
end

function get_date_parts(date_str)
  _,_,y,m,d=string.find(date_str, "(%d+)-(%d+)-(%d+)")
  return tonumber(y),tonumber(m),tonumber(d)
end

local gTarih = Input.GetText("txtTarih");
if trim(gTarih) ~= "" then
	local yy,mm,dd = get_date_parts(trim(gTarih))
	Dialog.Message("",os.date("*t",os.time{year=yy, month=mm, day=dd}).yday);
end

input a tarihi 

gg-aa-yyyy

şeklinde girmelisin.

 

olmadı sonsuz döngüye girerek hata veriyor yinede teşekkür ederim

Edited by yakupnun
Link to comment
Share on other sites

local gTarih = Input.GetText("txtTarih");
if trim(gTarih) ~= "" then
	local dd,mm,yy = get_date_parts(trim(gTarih))
	Dialog.Message("",os.date("*t",os.time{day=dd,month=mm,year=yy }).yday); -- bu satırda hata alıyorum zannederim "day" günle alakalı bir sorun 
end

kod şöyle

 

 

Link to comment
Share on other sites

tarih lerin tipleri yanlıştır. Hatalı karşılaştırma yapıyorsunuzdur.
 

 

Aslında hata tamamen senin verdiğin kod ile alakalı , (copy&paste) kod :rolleyes:

Ayrıca kodda Lua 4 stili var hernekadar Lua 5 tede geçerli olsada artık kullanılmamaldır

 

Lua 4 :

os.time{day=dd,month=mm,year=yy}

Lua 5 :

os.time({day=dd,month=mm,year=yy});

Hata nın sebebi ise ,kod örneği ISO standart tarihine göre yazılmış  (yyyy-mm-dd) bu yüzden yerel format ile uyumsuz

 

get_date_parts isimli fonsiyon senin beklediğinin tam tersi bir veri döndürmektedir

 

 

aşağıdaki örnekte y,m,d değişkenleri sırası ile yıl,ay,gün değerlerini alabilmeleri için tarih şu şekilde yazılmalıdır 2015-11-05

_,_,y,m,d=string.find(date_str, "(%d+)-(%d+)-(%d+)")

bu yüzden y ve d değişknlerinin yerini değiştirmelisiniz

çünkü bulunan veriler soldan sağa doğru sıralanır , sağdan sola değil

 

isterseniz yer değiştirme işlemini bir alt satırdaki dönüş bölümündede yapabilirsiniz tonumber(y),tonumber(m),tonumber(d)

 

ayrıca aşağıdaki kodda yy,mm,dd değişkenleri nil dönebilir , buda kontrol edilmeli ,aksi halde yine benzer bir hata olabilir

çünkü os.time() fonksiyonu year,month,day alanları geçerli bir tablo bekler ve bunun dışındaki durumlarda o ekran görüntüsündeki hatayı alırsınız

local yy,mm,dd = get_date_parts(trim(gTarih))

ayrıca ,aşağıdaki kod şuanki haliyle hep o anki tarihi verir çünkü os.time() dan dönen nil yada 0

bunun nedenide year bölümüne gün ve day bölümüne de yıl eklenmesidir

Dialog.Message("",os.date("*t",os.time{year=yy, month=mm, day=dd}).yday);
Link to comment
Share on other sites

vay arkadaş yeni nesil ne şanslı. biz ams öğrenirken bu adamlar indigorose forumlarında ingilizce anlatıyorlardı her şeyi. biz de aralarından anladığımız kadarını çekip almaya çalışıyorduk. Şu lükse bak ya, her mesaj döküman niteliğinde. Kaçırmayın bu fırsatı, yapışın bu adamın yakasına derim :D

Link to comment
Share on other sites

 

 

Aslında hata tamamen senin verdiğin kod ile alakalı , (copy&paste) kod :rolleyes:

Ayrıca kodda Lua 4 stili var hernekadar Lua 5 tede geçerli olsada artık kullanılmamaldır

 

Lua 4 :

os.time{day=dd,month=mm,year=yy}

Lua 5 :

os.time({day=dd,month=mm,year=yy});

Hata nın sebebi ise ,kod örneği ISO standart tarihine göre yazılmış  (yyyy-mm-dd) bu yüzden yerel format ile uyumsuz

 

get_date_parts isimli fonsiyon senin beklediğinin tam tersi bir veri döndürmektedir

 

 

aşağıdaki örnekte y,m,d değişkenleri sırası ile yıl,ay,gün değerlerini alabilmeleri için tarih şu şekilde yazılmalıdır 2015-11-05

_,_,y,m,d=string.find(date_str, "(%d+)-(%d+)-(%d+)")

bu yüzden y ve d değişknlerinin yerini değiştirmelisiniz

çünkü bulunan veriler soldan sağa doğru sıralanır , sağdan sola değil

 

isterseniz yer değiştirme işlemini bir alt satırdaki dönüş bölümündede yapabilirsiniz tonumber(y),tonumber(m),tonumber(d)

 

ayrıca aşağıdaki kodda yy,mm,dd değişkenleri nil dönebilir , buda kontrol edilmeli ,aksi halde yine benzer bir hata olabilir

çünkü os.time() fonksiyonu year,month,day alanları geçerli bir tablo bekler ve bunun dışındaki durumlarda o ekran görüntüsündeki hatayı alırsınız

local yy,mm,dd = get_date_parts(trim(gTarih))

ayrıca ,aşağıdaki kod şuanki haliyle hep o anki tarihi verir çünkü os.time() dan dönen nil yada 0

bunun nedenide year bölümüne gün ve day bölümüne de yıl eklenmesidir

Dialog.Message("",os.date("*t",os.time{year=yy, month=mm, day=dd}).yday);

daha öce senin dediğin gibi olabileceğini düşünüp günle yılın yerlerini değiştirmiştim 

local gTarih = Input.GetText("txtTarih");
if trim(gTarih) ~= "" then
	local dd,mm,yy = get_date_parts(trim(gTarih))
	Dialog.Message("",os.date("*t",os.time{day=dd,month=mm,year=yy }).yday); -- bu satırda hata alıyorum zannederim "day" günle alakalı bir sorun 
end

bu şekilde  ama sonuç değişmemişti .bunlar pairs in bana veridiği kodlardı bunlardan anlamaya çalıştım ama hatayı bulamadim 

ben ise daha basit bir mantıkla hareket etmek istemiştim "os.date("%j") "

 ile kaçıncı günde olduğumuzu buldurup inbox tan gelen verininde yılın kaçıncı günü olduğunu bulup - ki bunu henüz nasıl yapacağımı bilmiyorum- ikisini karşılaştırıp sistem günü inboxtan küçük ise doğum gününe xx gün xx dakka xx saat xx saniye diye geri sayım yaptırmayı planlıyorudum ama benim kodbilgimle benim için bir hayal olarak kalacak galiba . bu verdiğiniz bilgiler değerli teşekkürker

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...