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