Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
7172 siemargl 1
#include 
2
#include 
3
 
4
struct tm __buffertime;
5
 
6
 
7
 
8
struct tm * localtime (const time_t * timer)
9
/* non-standard!  ignore parameter and return just time now */
10
{
11
	int kos_date, kos_time;
12
	kos_date = _ksys_get_date();
13
	kos_time = _ksys_get_system_clock();
14
 
15
	__buffertime.tm_mday = kos_date >> 16;
16
	__buffertime.tm_mon = ((kos_date & 0xFF00) >> 8) -1;
17
	__buffertime.tm_year = kos_date >> 16 + 100;
18
 
19
	__buffertime.tm_wday = __buffertime.tm_yday = __buffertime.tm_isdst = -1; /* temporary */
20
 
21
	__buffertime.tm_sec = kos_time >> 16;
22
	__buffertime.tm_min = (kos_time & 0xFF00) >> 8;
23
	__buffertime.tm_hour = kos_time & 0xFF;
24
 
25
	return &__buffertime;
26
}
27
 
28
time_t time (time_t* timer)
29
{
30
	time_t t = mktime(localtime(0));
31
 
32
	if (timer) *timer = t;
33
 
34
	return t;
35
}
36
 
37
time_t mktime (struct tm * timeptr)
38
{
39
	int y, m, d;
40
	time_t 	t;
41
	y = timeptr->tm_year + 1900;
42
	m = timeptr->tm_mon + 1;
43
	d = timeptr->tm_mday; /* to -1 or not to -1? */
44
 
45
	if (m < 3) { m += 12; y -= 1; }
46
 
47
	t = y * 365 + y / 4 + y /400 - y / 100; /* years - > days */
48
	t += 30 * m + 3 * (m + 1) / 5 + d;		/* add month days */
49
 
50
	t -= 719561;  /* 01 jan 1970 */
51
	t *= 86400;
52
 
53
	t += 3600 * timeptr->tm_hour + 60 * timeptr->tm_min + timeptr->tm_sec;
54
 
55
	return t;
56
}
57
 
58
double difftime (time_t end, time_t beginning)
59
{
60
	return end - beginning;
61
}