WinBatch Tech Support Home

Database Search

If you can't find the information using the categories below, post a question over in our WinBatch Tech Support Forum.

TechHome

WinBatch
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus

Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.

The Year 2000 Problem

Wilson WindowWare, Inc.
5421 California Ave SW
Seattle, WA 98136
USA

support@winbatch.com
http://www.winbatch.com

Info: 1-206-938-1740
Tech: 1-206-937-9335
Fax: 1-206-935-7129

Re: WinBatch, WebBatch and the coming Millenium 2000

Last updated Jan 2nd, 2001

Rumors of impending disaster throughout the world's computer systems as the clock ticks towards the year 2000 have spread towards corporate boardrooms everywhere. Committees have consulted, memorandums have been mentioned, and in keeping with current management philosophies, duties have been delegated. Questions inquiring about the millenium problem have been received by software companies throughout the civilized world and New York.

As a result of this overwhelming deluge of unforeseen paperwork, we are attempting to respond as best we can. We have compiled the normal list of questions and will answer them here. Hopefully you can pick out the answers to your questions from the information below.

Background:

Wilson WindowWare produces several software products that consist, in whole or in part, of a programmable Windows scripting language (WIL). These include the following products along with assorted version and numbering schemes:

WinBatch and WebBatch are simple programming languages ideally suited for use by personnel who may not be programming professionals, and whose programming abilities may be incidental to their primary job functions. It seems to be a favorite of network administrators and system integrators. It does not tend to be used for large scale date computations, numerical computations, financial transactions, or long-term database records.

As they are programming languages, the proper handling of 4-digit dates is only slightly under our control. We have added capabilities to the language to assist in the transition through the year 2000, and provide the functions in the language to assist the programmers in conquering the year 2000 problem.

In most cases, the programs written with WinBatch or WebBatch do not process dates. In cases where they do process dates, the modifications we have made will allow most programs to transition into the next millenium without being modified. Of course we cannot guarantee this for any specific program. It is the customer's responsibility to test the program if required.

"FIXED WINDOW" (1950-2049):

WinBatch and WebBatch can accept both two-digit years and four-digit years. Two-digit years are assumed to be in the range of 1950 to 2049. When displaying or formatting data, by default 4-digit years will be used (older versions, 97E and previous, will use 2-year dates understanding them to be in the range of 1950 to 2049). An IntControl function is also available to control the display and format 2-digit and 4-digit years.

Winbatch only pays attention to 1950-2049, no matter what your "fixed window" settings are in Windows Regionals Settings. In other words, WB assumes all 2-digit yrs between the years (50-49) are the years between 1950 to 2049.

FAT 16 File Systems (1980-2044):

In Fat16 file systems, all dates are relative to the year 1980. In Fat16, file/time dates are calculated in 2 second intervals since 1980. By this relative method of time calcs, 2044 is where the counter overflows. In Fat16, after 2044, that many 2-second intervals have been used up. So in Winbatch test at the end of this article, we test years outside of this range to confirm that they are indeed outside this time slot. That is why you will see in a section of the LOG file (that is created after you run the test) that will say something like, "1975: Confirmed Invalid. FileTime functions cannot handle dates beyond 1980-2044." Do not be alarmed; we're expecting these dates to be invalid.

1) At what version number were the products upgraded to support solutions to the Year 2000 problem? (Note: Compliant versions are now available.)

Product Family      Approx Date   Support Added   Current version (Jan 2001)
-----------------   -----------   -------------   -----------------------
WinBatch            Jul 1, 1996        96E                  2001a
WinBatch+Compiler   Jul 1, 1996        96E                  2001a
WebBatch            Jul 1, 1998        98A                  2001a

2) Are there any conversion problems or file format changes?

There are no conversion problems relating to the date-handling capability. There are the normal idiosyncrasies encountered when updating any desktop software. As there is no native data format, there are no direct datafile conversion problems; however, programmers may have made their own datafiles with their own unique formats. We have no control over those.

Note: Beginning in 98A, the default setting is to return 4 year dates for most of the Time functions (with the Exception of TimeDate which is configured via the Control Panel

3) How can the version number of a particular copy of our product be determined?

Run the EXE by itself.

If a normal-looking "Windows"-type window appears, select the Help/About menu item.

Otherwise, a window should appear with either the version information displayed, or a selection available to obtain the version information.

4) What are the upgrade policies and procedures?

If you possess a current version of the product, updated copies may be obtained via our Web server at http://www.winbatch.com.

Upgrades may be ordered by calling USA 1-800-762-8383 or 1-206-938-1740 with a credit card, or by faxing a Purchase Order to USA 1-206-935-7129


Note: The setup programs for versions 95A through 97E have a minor bug that first shows up on Feb 14, 1999. The setup program will cause a WinBatch 3067 error when attempting to warn the user that they are installing an outdated version of the product. This can easily be circumvented by simply setting the computer date back before Feb 14, 1999, installing the software, then resetting the correct date.

Updated copies of the programs with corrected setup routines are available from the website.

Installed and operational copies of the programs will not be affected by this bug.


Technical Information

Modifications to WinBatch to support dealing with the "Year 2000 Problem".

By default, the 98A+ versions will use 4-digit years when formatting a date for display or for a function return as a time-type variable. Either 2- or 4-digit years can be accepted.

By executing the

   IntControl(41,0,0,0,0)

function, a 2-year date will be formatted or returned instead.

All date computations work internally with a 4-digit date.

The following functions were modified in support of the Year 2000 problem:

IntControl(41, p1, 0, 0, 0) Controls YmdHms format returned by time functions. p1 Meaning -- ------- 0 2-digit year (YY:MM:DD:HH:MM:SS) (95/96/97 default) 1 4-digit year (YYYY:MM:DD:HH:MM:SS) (98 default) -1 Don't change (just return current setting) This affects the following functions which return a YmdHms string: FileYmdHms, TimeAdd, TimeJulToYmd, TimeSubtract, TimeYmdHms. TimeAdd Modified to accept both 2- and 4-digit years, and to return dates in accordance with the IntControl 41 flag. TimeDelay Modified to work properly after the year 2000 TimeDiffDays Modified to accept both 2- and 4-digit years TimeDiffSecs Modified to accept both 2- and 4-digit years TimeJulianDay Modified to accept both 2- and 4-digit years TimeJultoYMD Modified to return dates in accordance with the IntControl 41 flag. TimeSubract Modified to accept both 2- and 4-digit years, and to return dates in accordance with the IntControl 41 flag. TimeWait Modified to work properly after the year 2000 TimeYmdHms Modified to return dates in accordance with the IntControl 41 flag. TimeDate The TimeDate function returns a human-readable formatted date string. The string is formatted in accordance with the "International" user-defined specifications found in the Windows Control Panel.(beginning with version 98A)

Re: WinBatch Test Script:

You can download a WinBatch WBT test script that Wilson WindowWare created to test WinBatch functions. As the language processing engines are the same, this script is applicable to other products also.

This script tests time functions up to, and including, functions included in WinBatch 98D, so you must have at least WB98D to run this script successfully. If you don't, a warning message will come up when you run the script and the test script will exit.

Note #1: As in the TimeDate function, for the FileTimeGet function to return 4-digit years, you must change the "short date style" setting in Control Panel, under Regional Settings. (Alternatively, you could change the [Intl] sShortDate setting with IniWrite.)

You also must have at least version 98D for FileTimeGet to return 4-digit years. The remainder of the time functions return 4-digit years by default (without having to muck around with Regional Settings).

Note #2: FileTimeCode is affected by Daylight Savings Time. Especially on NT. The NT routines to convert file time and system time (maintained as GMT) to local time do not take into account that the daylight savings time bias offset might change. So when you check a file way back before, the time is handed to you with the current time settings. (as in PDT time instead of PST time).

In general, this is what the script in the following link tests:

  1. From now until January 1, 2000, does WB correctly process data containing dates after December 31, 1999? TimeWait on January 1, 2000. Test TimeYmdHms, etc. Answer specific questions, such as: Make sure "00" is the year 2000 and not 1900.

    OTHER Y2K QUESTIONS:
    Q: Is there any hardcoding of 19 as the century still? A: Only when used to expand a two year date between 50 and 99.

    Q: Does WB contain any 2-digit literals like 99 or zero or 19? A: Yes. 19 is one of our favorite numbers. Dialogs are limited to 99 controls. Zero's are rather common.

    LOOKING BACKWARD: (a) Does WB correctly calculate the date when, being on or after 1/1/2000, it uses events with dates prior to 1/1/2000? i.e., after January 1, 2000, does WB correctly processes data containing dates BEFORE January 1, 2000? (test w/ FileYmdHms and other file functions)

    LOOKING FORWARD: (a) Does WB correctly calculate the date when, being prior to Year 2000, the date of a future event is provided with a date on or after 1/1/2000? (test w/ FileYmdHms and other file functions) (b) After January 1, 2000, does WB correctly processes data containing dates after December 31, 1999?

  2. From now (ex: 10/01/98) until January 1, 2000, does WB correctly process data containing dates before January 1, 2000?

    (a) Will WB recognize Year 2000 as a leap year? I.e., will February 29, 2000 be recognized as a valid date?
    (b) Does WB know that 2/29/2000 is a leap year and 1900 is not?
    (c) Set the system date to Feb 28, wait for 29 then look at the March 1 date, and check day of week, etc.
    (d) Will WB recognize Julian date 00060 as February 29, 2000?
    (e) DAY OF THE WEEK: Can WB recognize the correct day of the week for dates on or after January 1, 2000.
    (f) Test day of week on February 29, 2000 and March 1, 2000.
    (g) Will WB run beyond 02/29/2000?
    (h) Is Binary date (DAYS COUNTING FROM 1900) 36584 recognized as February 29, 2000?

  3. Test other leap years: Ex. Feb 29, 2004.

  4. Will September 9, 1999 (09/09/99) be recognized as a valid date? Will WB run beyond 09/09/99? Any use of "magic dates" as a default entry anywhere?

  5. Will WB handle the date 01/01/01 (January 1, 2001) correctly?

  6. (a) Does WB correctly SORT dates chronologically for any date from 01/01/1980 to 12/31/2049?
    (b) Correct NUMBER OF DAYS between two dates. MULTI-CENTURY CALCS: Does WB calculate correctly when running yearly calculations which cross the 1/1/2000 barrier or summarizing Year 2000? (e.g., TimeDiff between 01/01/1980 and 12/31/2049.)

  7. Will WB recognize Julian date 00366 as December 31, 2000? Will Arithmetic operations performed recognize that year 2000 has 366 days? Test that 2001 has 365 days.

  8. TEST 2-YR DATES AND WINDOW TEST

  9. TEST ROLLOVER FROM 1/31/2000 TO 2/1/2000.

  10. TEST 1/7/2000 - FIRST FRIDAY OF 2000.

  11. TEST 1/10/2000 - FIRST MONDAY AFTER FIRST FRIDAY OF 2000.

  12. TEST 1/1/1999 - FIRST YEAR WITH "99" IN YEAR FIELD.
	Y2KTest.WBT


Article ID:   W12709
Filename:   The Year 2000 Problem.txt
File Created: 2017:08:29:11:37:14
Last Updated: 2017:08:29:11:37:14