24 Ekim 2016 Pazartesi

PYTHON TARIH/SAAT ÖRNEK UYGULAMALAR:


Örnek:Ayın son günü (o ayın gün sayısını) bulma:

from datetime import date, datetime, timedelta

#bir aydaki gün sayısı veya ayın son günü
def last_day_of_the_month(y, m):
    m += 1
    if m == 13:
        m = 1
        y += 1

    first_of_next_month = date(y, m, 1)
    last_of_this_month = first_of_next_month + timedelta(-1)

    return last_of_this_month.day



t = (2016,2,1)

last_day = last_day_of_the_month(t.year,t.month)


kaynak:
https://wuhrr.wordpress.com/2011/04/07/determine-the-last-day-of-a-month/

Örnek:Girilen yil ay gün değerlerini birleştirerek tarih değerini elde ediniz.

python:
--------
import datetime

y = 2016
m = 10
d = 14
t1 = datetime.datetime(y, m, d)
print(t1)


delphi:
--------------
procedure TForm1.Button4Click(Sender: TObject);
var y,m,d:Word;
t1:TDate;
begin
  //uses DateUtils
  y:=2016;
  m:=10;
  d:=14;
  t1:=EncodeDate(y,m,d);
  edit1.Text:= datetostr(t1);
end;


Örnek: Girilen tarih değerinden o ayın son ve ilk gününü bulunuz.(Get Last/first Day of the Month in Python)

python:
---------------
import datetime
import calendar

date = datetime.date.today()
t1 = datetime.datetime(date.year, date.month, 1)
t2 = datetime.datetime(date.year, date.month, calendar.mdays[date.month])

print(t1)
print(t2)

çıktısı:
------------
2016-10-01 00:00:00
2016-10-31 00:00:00

kaynak:http://fosshelp.blogspot.com.tr/2010/03/how-find-last-day-of-month-in-python.html



delphi:
-------------
var t1,t2:TDate;
   y,m,d:Word;
begin
//uses DateUtils
   DecodeDate(Date,y,m,d);
   t1:=EncodeDate(y,m,1); //ayın başı
   t2:=EncodeDate(y,m,DaysInMonth(Date)); //ayın sonu

İki zaman(tarih+saat) arasındaki fark( saniye cinsinden) versin:

import datetime
dt1 = "14/11/2016 13:10:22"
dt2 = "14/11/2016 15:00:22"
bas = datetime.datetime.strptime(dt1, "%d/%m/%Y %H:%M:%S")
bit = datetime.datetime.strptime(dt2, "%d/%m/%Y %H:%M:%S")
diff = bit - bas

print(diff.seconds)

sonuç:

6600


Sayısal olarak tutulmuş zaman farkını saat cinsinde dönüştürme:

>>time.strftime("%H:%M:%S", time.gmtime(6600))
>>'01:50:00'

Mesela tabloda zaman farkı dakika cinsinden,integer türünden 540 olarak tutmuş olsun.Bunu saat formatına dönüştürürsek:
gmtime saniye değerini aldığından farkı 60 ile çarpıyoruz:

import time

fark = 540 * 60
saat = time.strftime("%H:%M:%S", time.gmtime(fark))
print(saat)

sonuç:

09:00:00








Örnek:Güncel tarih,saat,tarih-saat bilgisini versin:

güncel tarih:
------------------
import time
t = time.strftime("%d/%m/%Y")

çıktısı:
25/10/2016


güncel saat:
----------------
import time

s = time.strftime("%H:%M:%S")

çıktısı:

09:43:50


güncel tarih-saat
-------
ts = time.strftime("%d/%m/%Y %H:%M:%S")

çıktısı:

25/10/2016 09:43:50

Örnek:Girilen tarihten haftanın gününü versin:

python:
-----------------------------
from datetime import datetime

s = "2016-10-02" #pazar
t = datetime.strptime(s, "%Y-%m-%d")

#Monday is 0 and Sunday is 6
haftaningunu = t.weekday()
print(haftaningunu)

çıktısı:
----
6

delphi:
------------------------------------------------
procedure TForm1.Button11Click(Sender: TObject);
var s:string;
   t:TDate;
   haftaningunu:Word;
begin
   s:= '02.10.2016'; //pazar
   t:= StrToDate(s);

   //DayOfTheWeek  1=Monday  ,  7=Sunday
   haftaningunu:= DayOfTheWeek(t);

   edit1.Text:= IntToStr(haftaningunu);

end;

çıktısı:
----
7


Örnek:İki zaman(tarih+saat) arasındaki farkı sn cinsinden versin:

python:
-----------------------------


delphi:
------------------------------------------------
//uses DateUtils 

kullanım:SecondsBetween(Now, IncSecond(Now,10))

fark:integer;
s1,s2:string;
t1,t2:TDateTime;
begin
s1:='24.10.2016 17:05:00';
s2:='24.10.2016 17:45:00';

t1:=DateTimeToStr(s1);
t2:=DateTimeToStr(s2);

fark:= SecondsBetween(t1,t2);


kaynak: http://stackoverflow.com/questions/9790204/difference-in-seconds-between-two-tdatetime-variables


Örnek:İki tarih arasında while döngüsü çalıştırma:

python:
-----------------------------

from datetime import datetime, timedelta

s1 = "2016-10-10"
s2 = "2016-10-20"

t1 = datetime.strptime(s1, "%Y-%m-%d")
t2 = datetime.strptime(s2, "%Y-%m-%d")

t = t1
while t<=t2:
    print(t)
    t += timedelta(days=1)


çıktısı:
-------
2016-10-10 00:00:00
2016-10-11 00:00:00
2016-10-12 00:00:00
2016-10-13 00:00:00
2016-10-14 00:00:00
2016-10-15 00:00:00
2016-10-16 00:00:00
2016-10-17 00:00:00
2016-10-18 00:00:00
2016-10-19 00:00:00
2016-10-20 00:00:00


delphi:
------------------------------------------------
procedure TForm1.Button10Click(Sender: TObject);
var s1,s2:string;
   t1,t2,t:TDate;
begin
   //uses DateUtils
   s1:= '10.10.2016';
   s2:= '20.10.2016';

   t1:= StrToDate(s1);
   t2:= StrToDate(s2);

   t:= t1;
   while t<=t2 do begin
      memo1.lines.add(datetostr(t));
      t:=IncDay(t,1);
   end;
end;


çıktısı:
-------
10.10.2016
11.10.2016
12.10.2016
13.10.2016
14.10.2016
15.10.2016
16.10.2016
17.10.2016
18.10.2016
19.10.2016
20.10.2016


Hiç yorum yok:

Yorum Gönder