Changeset 11358
- Timestamp:
- Jan 29, 2007, 7:34:15 AM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/concepts/pmConceptsStandard.c
r11148 r11358 429 429 430 430 // Work out how the time is represented 431 bool separateTime = false; 431 432 bool usaTime = false; // Is the time specified in USA (MM-DD-YYYY) order? 432 433 bool backwardsTime = false; // Is the time specified in backwards (DD-MM-YYYY) order? … … 454 455 psListIterator *timeFormatsIter = psListIteratorAlloc(timeFormats, PS_LIST_HEAD, false); // Iter 455 456 while ((timeFormat = psListGetAndIncrement(timeFormatsIter))) { 456 if (strcasecmp(timeFormat, "USA") == 0) { 457 if (strcasecmp(timeFormat, "SEPARATE") == 0) { 458 separateTime = true; 459 } else if (strcasecmp(timeFormat, "USA") == 0) { 457 460 usaTime = true; 458 461 backwardsTime = false; … … 500 503 switch (concept->type) { 501 504 case PS_DATA_LIST: { 505 if (!separateTime) { 506 psWarning ("DATE and TIME stored separately, but not specified in format\n"); 507 } 502 508 // The date and time are stored separately 503 509 // Assume the date is first and the time second … … 836 842 bool jdTime = false; // Is the date stored as a JD? 837 843 bool mjdTime = false; // Is the date stored as a MJD? 844 bool yearFirst = false; 838 845 839 846 bool mdok = true; // Status of MD lookup … … 847 854 if (strcasecmp(format, "SEPARATE") == 0) { 848 855 separateTime = true; 849 } else if (strcasecmp(format, "PRE2000") == 0) { 850 pre2000Time = true; 856 } else if (strcasecmp(format, "USA") == 0) { 857 usaTime = true; 858 backwardsTime = false; 859 jdTime = false; 860 mjdTime = false; 851 861 } else if (strcasecmp(format, "BACKWARDS") == 0) { 852 862 backwardsTime = true; … … 854 864 mjdTime = false; 855 865 jdTime = false; 856 } else if (strcasecmp(format, "USA") == 0) { 857 usaTime = true; 866 } else if (strcasecmp(format, "YEAR.FIRST") == 0) { 867 yearFirst = true; 868 usaTime = false; 858 869 backwardsTime = false; 859 870 jdTime = false; 860 871 mjdTime = false; 872 } else if (strcasecmp(format, "PRE2000") == 0) { 873 pre2000Time = true; 874 } else if (strcasecmp(format, "MJD") == 0) { 875 mjdTime = true; 876 usaTime = false; 877 backwardsTime = false; 878 jdTime = false; 879 separateTime = false; 861 880 } else if (strcasecmp(format, "JD") == 0) { 862 881 jdTime = true; … … 864 883 backwardsTime = false; 865 884 mjdTime = false; 866 separateTime = false;867 } else if (strcasecmp(format, "MJD") == 0) {868 mjdTime = true;869 usaTime = false;870 backwardsTime = false;871 jdTime = false;872 885 separateTime = false; 873 886 } else { … … 896 909 } 897 910 if (backwardsTime) { 898 psError(PS_ERR_UNKNOWN, true, "You want it BACKWARDS? Not right now, thanks.\n"); 899 return NULL; 911 int day, month, year; 912 psTrace ("psModules.concepts", 5, "ISO time has year first, convert to DD-MM-YYYY"); 913 sscanf (dateString, "%d-%d-%d", &year, &month, &day); 914 sprintf (dateString, "%02d-%02d-%04d", day, month, year); 915 // XXX fix this for str length 900 916 } 901 917 if (usaTime) { 902 psError(PS_ERR_UNKNOWN, true, "USA? No OK.\n"); 903 return NULL; 918 int day, month, year; 919 psTrace ("psModules.concepts", 5, "ISO time has year first, convert to MM-DD-YYYY"); 920 sscanf (dateString, "%d-%d-%d", &year, &month, &day); 921 sprintf (dateString, "%02d-%02d-%04d", month, day, year); 922 // XXX fix this for str length 923 } 924 if (yearFirst) { 925 psTrace ("psModules.concepts", 5, "ISO time has year first, no adjustment needed"); 904 926 } 905 927 … … 908 930 psMetadataItem *timeItem = psMetadataItemAllocStr(concept->name, "The time of observation", 909 931 timeString); 910 psFree(dateString);911 psFree(timeString);912 932 913 933 psListRemove(dateTime, PS_LIST_HEAD); 914 934 psListRemove(dateTime, PS_LIST_HEAD); 935 915 936 psListAdd(dateTime, PS_LIST_HEAD, dateItem); 916 937 psListAdd(dateTime, PS_LIST_TAIL, timeItem); … … 918 939 psMetadataItem *item = psMetadataItemAllocPtr(concept->name, PS_DATA_LIST, concept->comment, 919 940 dateTime); 941 psFree (dateItem); 942 psFree (timeItem); 943 psFree (dateTime); 920 944 return item; 921 945 }
Note:
See TracChangeset
for help on using the changeset viewer.
