5 A Linux/Unix toolset and driver for Nokia mobile phones.
7 Released under the terms of the GNU GPL, see file COPYING for more details.
17 #include "gsm-datetime.h"
18 #include "gsm-common.h"
20 static char DayOfWeekChar;
22 /* Based on article in Polish PC-Kurier 8/1998 page 104 */
23 /* Archive on http://www.pckurier.pl */
24 char *DayOfWeek (int year, int month, int day) {
30 w=(day+(31*q) / 12 + r + r / 4 - r / 100 + r / 400) % 7;
31 strcpy(&DayOfWeekChar,"");
33 case 0: strcpy(&DayOfWeekChar,"Sun"); break;
34 case 1: strcpy(&DayOfWeekChar,"Mon"); break;
35 case 2: strcpy(&DayOfWeekChar,"Tue"); break;
36 case 3: strcpy(&DayOfWeekChar,"Wed"); break;
37 case 4: strcpy(&DayOfWeekChar,"Thu"); break;
38 case 5: strcpy(&DayOfWeekChar,"Fri"); break;
39 case 6: strcpy(&DayOfWeekChar,"Sat"); break;
41 return &DayOfWeekChar;
46 /* GetMachineDateTime ----------------------------------------------------------
47 Purpose: Gets system date and time.
50 Output: date - System date in the format "aaaa-mm-gg".
51 time - System time in the format "hh:mm:ss".
53 ----------------------------------------------------------------------------- */
54 static void GetMachineDateTime( char nowdate[], char nowtime[] )
62 /* I have 100 (for 2000) Year now :-) */
63 if (now->tm_year>99 && now->tm_year<1900) {
64 now->tm_year=now->tm_year+1900;
67 sprintf(nowdate,"%04d-%02d-%02d",now->tm_year,now->tm_mon+1,now->tm_mday);
68 sprintf(nowtime, "%02d:%02d:%02d",now->tm_hour,now->tm_min,now->tm_sec);
72 void EncodeDateTime(unsigned char* buffer, GSM_DateTime *datetime)
74 buffer[0] = datetime->Year / 256;
75 buffer[1] = datetime->Year % 256;
76 buffer[2] = datetime->Month;
77 buffer[3] = datetime->Day;
79 buffer[4] = datetime->Hour;
80 buffer[5] = datetime->Minute;
85 void DecodeDateTime(unsigned char* buffer, GSM_DateTime *datetime)
87 datetime->Year = buffer[0] * 256 + buffer[1];
88 datetime->Month = buffer[2];
89 datetime->Day = buffer[3];
91 datetime->Hour = buffer[4];
92 datetime->Minute = buffer[5];
93 datetime->Second = buffer[6];