![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /usr/lib/GNUstep/Libraries/gnustep-base/Versions/1.26/Resources/NSTimeZones/ |
Upload File : |
/* create-regions.m - Utility to create a list of time zones and their associated latitudinal region. Copyright (C) 1997 Free Software Foundation, Inc. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include <stdio.h> #include <Foundation/NSArray.h> #include <Foundation/NSAutoreleasePool.h> #include <Foundation/NSException.h> #include <Foundation/NSDate.h> #include <Foundation/NSTimeZone.h> #define HOURSECS (60*60) /* Seconds in 1 hour. */ #define DAYSECS (HOURSECS*24) /* Seconds in 24 hours. */ #define N (360/15) /* Each latitudinal region is separated by 15 degrees */ int main (int argc, char *argv[]) { int i; id pool, name, zone; id zones[N]; pool = [NSAutoreleasePool new]; for (i = 0; i < N; i++) zones[i] = nil; /* Obtain the regions for each latitudinal region. */ for (i = 1; i < argc; i++) { name = [NSString stringWithUTF8String: argv[i]]; zone = [NSTimeZone timeZoneWithName: name]; if (zone != nil) { int offset, index; id details, detail, e; details = [zone timeZoneDetailArray]; /* Get a standard time. */ e = [details objectEnumerator]; while ((detail = [e nextObject]) != nil) { if (![detail isDaylightSavingTimeZone]) break; } if (detail == nil) /* If no standard time. */ detail = [details objectAtIndex: 0]; offset = [detail timeZoneSecondsFromGMT]; /* Get index from normalized offset */ index = ((offset+DAYSECS)%DAYSECS)/HOURSECS; if (zones[index] == nil) zones[index] = [NSMutableArray array]; [zones[index] addObject: [zone timeZoneName]]; } } /* Write regions to file. */ for (i = 0; i < N; i++) { id e, name; if (zones[i] != nil) { e = [zones[i] objectEnumerator]; while ((name = [e nextObject]) != nil) printf("%d %s\n", i, [name UTF8String]); } } [pool release]; return 0; }