This circuit takes 3.7vdc and converts it to about 18kv. The transistor is used for the plasma speaker. It’s basically a Single-Ended Class A Audio Amplifier. The 500-ohm pot adjusts the voltage sent to the converter. The pot must NOT go over 500 ohms because then the voltage could be too high. The circuit is currently untested but to believe it may work. Also LM338 is used instead of LM317 because of the high current draw.
Keep a lookout for when I get it built and upload photos and a video. I thank flyback for reminding me about the inductive kickback voltage so I put a diode in reverse bias across the power inputs on the converter. The converter cat# is HVS-01 on allelectronics.com
When I got John zogg’s DVD player it didn’t come with the AC adapter, just the carrying case, battery and the car Cord. At first I thought that it would of charged on 12vdc, but no it has to be 9vdc. So what I did is buy a adjustable voltage regulator, heatsink and a couple resistors. And I hooked up to my circuit the green light came on and the next day the green light turned off meaning it is fully charged.
Here is my plan for John Zogg’s battery charger. It uses 3 analog inputs for each battery cell. I decided to use this one that flyback found on the internet is because it can turn off when it is done. It has a temperature sensor. It uses an Arduino Uno to control it. USB is not recommended for charging it as the 2x 10-ohm resistors go over the current limit on USB Current. The TMP-36 sensors must be attached to the batteries case. This is so it measures its temperature.
/*
* UnoCharge - the arduino nimh charger
* This is my version of the Arduino NiMh battery charger
* its modifications include Charge LED and multiple Battery support
* Orginally from https://www.allaboutcircuits.com/projects/create-an-arduino-controlled-battery-charger/
* Modified by delphijustin
* Special Thanks to John Zogg and flyback
*/
byte nBatteries=2;//Number of batteries(1 through 5), other array variables must have the same number of values.
byte chargedLED = 2; // digital pin for LED
int batteryCapacity[] = {2500,2500}; //capacity rating of battery in mAh
float resistance[] = {10.0,10.0}; //measured resistance[b] of the power resistor
int cutoffVoltage = 1600; //maximum battery voltage (in mV) that should not be exceeded
float cutofftemperatureC = 35; //maximum battery temperature that should not be exceeded (in degrees C)
//float cutoffTemperatureF = 95; //maximum battery temperature that should not be exceeded (in degrees F)
long cutoffTime = 46800000; //maximum charge time of 13 hours that should not be exceeded
byte outputPin[] = {9,6}; // Output signal wire connected to digital pin 9
int outputValue[] = {150,150}; //value of PWM output signal
byte analogPinOne[] = {0,3}; //first voltage probe connected to analog pin 1
float ValueProbeOne[] = {0,0}; //variable to store the value of analogPinOne[b]
float voltageProbeOne[] = {0,0}; //calculated voltage at analogPinOne[b]
byte analogPinTwo[] = {1,4}; //second voltage probe connected to analog pin 2
float valueProbeTwo[] = {0,0}; //variable to store the value of analogPinTwo[b]
float voltageProbeTwo[] = {0,0}; //calculated voltage at analogPinTwo[b]
byte analogPinThree[] = {2,5}; //third voltage probe connected to analog pin 2
float valueProbeThree[] = {0,0}; //variable to store the value of analogPinThree[b]
float tmp36voltage[] = {0,0}; //calculated voltage at analogPinThree[b]
float temperatureC[] = {0,0}; //calculated temperature of probe in degrees C
//float temperatureF = 0; //calculated temperature of probe in degrees F
float voltageDifference[] = {0,0}; //difference in voltage between analogPinOne[b] and analogPinTwo[b]
float batteryVoltage[] ={0,0}; //calculated voltage of battery
float current[] = {0,0}; //calculated current through the load (in mA)
float targetCurrent[] = {0,0}; //target output current (in mA) set at C/10 or 1/10 of the battery capacity per hour
float currentError[] = {0,0}; //difference between target current and actual current (in mA)
void setup()
{
pinMode(chargedLED,OUTPUT);
digitalWrite(chargedLED,LOW);
Serial.begin(9600); // setup serial
for(byte x=0;x<nBatteries;x++){
targetCurrent[x]=batteryCapacity[x]/10;
pinMode(outputPin[x], OUTPUT); // sets the pin as output
}
}
byte chargeStatus(){
byte s=0;
for(byte b=0;b<nBatteries;b++){
if(outputValue[b]==0){s++;}
}
if(s==nBatteries){
digitalWrite(chargedLED,HIGH);
}
return s;
}
void loop()
{
for(byte b=0;b<nBatteries;b++){
Serial.println("Battery "+b);
analogWrite(outputPin[b], outputValue[b]); //Write output value to output pin
Serial.print("Output: "); //display output values for monitoring with a computer
Serial.println(outputValue[b]);
ValueProbeOne[b] = analogRead(analogPinOne[b]); // read the input value at probe one
voltageProbeOne[b] = (ValueProbeOne[b]*5000)/1023; //calculate voltage at probe one in milliVolts
Serial.print("Voltage Probe One (mV): "); //display voltage at probe one
Serial.println(voltageProbeOne[b]);
valueProbeTwo[b] = analogRead(analogPinTwo[b]); // read the input value at probe two
voltageProbeTwo[b] = (valueProbeTwo[b]*5000)/1023; //calculate voltage at probe two in milliVolts
Serial.print("Voltage Probe Two (mV): "); //display voltage at probe two
Serial.println(voltageProbeTwo[b]);
batteryVoltage[b] = 5000 - voltageProbeTwo[b]; //calculate battery voltage
Serial.print("Battery Voltage (mV): "); //display battery voltage
Serial.println(batteryVoltage[b]);
current[b] = (voltageProbeTwo[b] - voltageProbeOne[b]) / resistance[b]; //calculate charge current[b]
Serial.print("Target Current (mA): "); //display target current[b]
Serial.println(targetCurrent[b]);
Serial.print("Battery Current (mA): "); //display actual current[b]
Serial.println(current[b]);
currentError[b] = targetCurrent[b] - current[b]; //difference between target current[b] and measured current[b]
Serial.print("Current Error (mA): "); //display current[b] error
Serial.println(currentError[b]);
valueProbeThree[b] = analogRead(analogPinThree[b]); // read the input value at probe three
tmp36voltage[b] = valueProbeThree[b] * 5.0; // converting that reading to voltage
tmp36voltage[b] /= 1024.0;
temperatureC[b] = (tmp36voltage[b] - 0.5) * 100 ; //converting from 10 mv per degree wit 500 mV offset to degrees ((voltage - 500mV) times 100)
Serial.print("Temperature (degrees C) "); //display the temperature in degrees C
Serial.println(temperatureC[b]);
/*
temperatureF = (temperatureC[b] * 9.0 / 5.0) + 32.0; //convert to Fahrenheit
Serial.print("Temperature (degrees F) ");
Serial.println(temperatureF);
*/
Serial.println(); //extra spaces to make debugging data easier to read
Serial.println();
if(abs(currentError[b]) > 10) //if output error is large enough, adjust output
{
outputValue[b] = outputValue[b] + currentError[b] / 10;
if(outputValue[b] < 1) //output can never go below 0
{
outputValue[b] = 0;
}
if(outputValue[b] > 254) //output can never go above 255
{
outputValue[b] = 255;
}
analogWrite(outputPin[b], outputValue[b]); //write the new output value
}
if(temperatureC[b] > cutofftemperatureC) //stop charging if the battery temperature exceeds the safety threshold
{
outputValue[b] = 0;
Serial.print("Max Temperature Exceeded");
}
/*
if(temperatureF > cutoffTemperatureF) //stop charging if the battery temperature exceeds the safety threshold
{
outputValue[b] = 0;
}
*/
if(batteryVoltage[b] > cutoffVoltage) //stop charging if the battery voltage exceeds the safety threshold
{
outputValue[b] = 0;
Serial.print("Max Voltage Exceeded");
}
if(millis() > cutoffTime) //stop charging if the charge time threshold
{
outputValue[b] = 0;
Serial.print("Max Charge Time Exceeded");
}
delay(10000); //delay 10 seconds for before next iteration
}
Serial.println();
Serial.print(chargeStatus());
Serial.print(" Out of ");
Serial.print(nBatteries);
Serial.print(" batteries fully charged");
}
Also, I am not sure if the MOSFET has to be special but it controls the charging voltage according to the All About Circuits page so I will use a IRF510 MOSFET from eBay.
Here is a simple transistor battery charger it can charge batteries up to 12v in series. It has an LED and a few parts.
To use it you must decide on a power supply voltage, current limit resistor, and number of cells. First to figure out what voltage to use you must know the total battery series voltage. Batteries in series their voltages adds up.
Battery series voltage(B1)
minimum(V1)
maximum(V1)
1.2v
6.5v
10v
2.4v
7.5v
11v
3.6v
9.6v
12v
4.8v
10.5v
13v
6v
12
15v
7.2v
13.2v
16v
8.4v
14.5v
18v
9.6v
15.6v
18v
10.8v
16.8v
19v
12v
18v
21v
Just pick a number of batteries in series that matches its output voltage. The power supply voltage must not go below minimum voltage or over the maximum voltage(as seen in the table above)
Now that we figured power supply voltage and battery count we must figure out the current limit resistor(R2). This charger will take 15 hours to charge. To figure out we need to know amp-hour of one battery. All batteries must have the same amp-hour rating. The current should be limited to ten times less than the amp-hour rating. So if it is 1000mAh the resistor should limit it to 100mA.
Amp-Hour rating:mAh
The calculated times small should be close to 10.
To use more than 10 cells multiply the number of parts. D1 is a standard 1A or higher rectifier diode. The charger should be turned off when it is done charger. The LED should change its state. Also, currents add up. The circuit originally came from ElectronicsYard
Today I began working on my Capacitor box. It’s value is in binary obtain from switches.
If you can’t get perfect Capacitance from each switch you can use multiple in parallel or series.
For capacitors in series the value is:
$$Ct=\frac{1}{\frac{1}{C1}+\frac{1}{C2}}$$
Both equations can have any amount of capacitors the variable Ct is the total Capacitance
For capacitors in parallel the value is:
$$Ct=C1+C2+C3$$
So far only one switch is mounted. Soon more it will be finished. Each switch is in parallel with the polarity the same. Below is a schematic of the Capacitance box. You may need to put extra capacitors in parallel so that the box is more accurate. Also I had to cut the wires so I can mount the switches. Each switch in the schematic has the binary value right by the switches
This do-it-yourself extension cord is simple and straight forward. The reason! Why I built it was to make my cell phone reach the outlet. I just used 2 strains of wires connected to both ends. The one I built has 3 different kinds of wires. This is because I wanted to build it out of what I had. I added it up and it should be over 9 foot
Here’s what you need:
A cigarette lighter female and male connectors(with or without wires pre-soldered)
A pair of wires (color coded preferred, doesn’t have to be color coded it should be hookup or speaker wire)
A roll of rosin core solder (don’t use acid core solder or plumbing solder) if you don’t want to solder then you could use butt connectors,but you will need to crimp them. Butt connectors are totally useless if you just get the connectors without pre-soldered wires.
Electric tape or heatshrinks(needed to make sure that the solder joints don’t touch)
This app draws text on the top left corner of the screen. It has UTC Time, Uptime, last IRC Channel message in mIRC, Error Of The Day, Memory Load, IP Addresses and Phase Of The Moon. It’s lightweight and open source.
All programs are virus free. Some antivirus software might say its "suspicious" or a "Potentionaly Unwanted Program". Some of them rate them on what there code looks like no matter if theres a definition in the virus database. If any of them are detected any Antivirus I will zip the software with the password "justin" j is lowercase
program delpfo;
{$RESOURCE DelpFo32.RES}
uses SysUtils, Windows, graphics, Classes, mIRCc in '..\delphi\TmIRCControl\mIRCc.pas';
const AppName='delpFo'; DB_HOLIDAY_DATE='%u/%u'; DB_HOLIDAY_YEAR=DB_HOLIDAY_DATE+'.year'; DELPFO_ATOM_CLOSE='DELPFO_CLOSE'; DELPFO_ATOM_MAIN='DELPFO_APP'; SWITCH_MOON='/MOON'; SWITCH_HOLIDAY='/HOLIDAY'; SWITCH_CLOSE='/CLOSE'; SWITCH_UTC='/UTC'; SWITCH_UPTIME='/UPTIME'; SWITCH_MEM='/MEM'; SWITCH_BOLD='/BOLD'; SWITCH_IPV4='/IPV4'; SWITCH_RIGHT='/RIGHT'; SWITCH_POSX='/POSX'; SWITCH_ERROR='/ERROR'; SWITCH_MIRC='/MIRC'; SWITCH_POSY='/POSY'; SWITCH_FC='/FC'; SWITCH_FONT='/FONT'; SWITCH_FSIZE='/FSIZE'; type TMoonInfo=record MoonType:byte; end; var utc,moontime:systemtime; monitor:tcanvas; args,IPs:tstringlist; i:integer; uptime:tdatetime; moon:tmooninfo; Text:string; mem:memorystatus; hk,netadaptors:hkey; enabledhcp,netcount,rs:dword; mIRC:TMIRCControl; buff,kname:array[0..max_path]of char; r:trect; label loop; procedure close; var error:dword; begin error:=0; if globaldeleteatom(globalfindatom(DELPFO_ATOM_CLOSE))>0then error:=error or 1; if Globaldeleteatom(globalfindatom(delpfo_atom_main))>0then error:=error or 2; if releasedc(getdesktopwindow,monitor.handle)=0then error:=error or 4; mirc.Destroy; exitprocess(error); end; function PhaseOfMoon(var systime:systemtime):TMoonInfo; var b,c,e,jd:double; begin systime.wMonth:=systime.wMonth-1; if systime.wMonth<3then begin systime.wYear:=systime.wYear-1;systime.wMonth:= systime.wMonth+12;end;systime.wMonth:=systime.wMonth+1;c:=365.25*systime.wYear; e:=30.6*systime.wMonth;jd:=c+e+systime.wDay-694039.09;jd:=jd/29.5305882;b:=trunc( jd);jd:=jd-b;b:=round(jd*8); if b >= 8 then b:=0; result.MoonType:=trunc(b); end; function ErrorOfTheDay:integer; label loop; begin randseed:=trunc(date); loop:result:=random(16000); if length(SysErrorMessage(result))=0then goto loop; end; function FormatHoliday(fmt:string;systime:systemtime):string; begin result:=format(fmt,[systime.wMonth,systime.wDay]); end; function getHoliday:string; var ltime:systemtime; res:tresourcestream; holidays:tstringlist; begin getlocaltime(ltime); holidays:=tstringlist.Create; res:=tresourcestream.Create(hinstance,'HOLIDAYS','DATABASE'); holidays.LoadFromStream(res); result:=format(holidays.values[formatholiday(db_holiday_date,ltime)],[ltime.wyear- strtointdef(holidays.values[formatholiday(db_holiday_year,ltime)],0)]); holidays.Free; res.Free; end; begin args:=tstringlist.Create; for i:=1to paramcount do args.Add(paramstr(i)); if args.Count=0 then begin messagebox(0,pchar( 'Usage:'+extractfilename(paramstr(0))+' <parameters>'#13#10+ '/UPTIME Shows uptime'#13#10+ '/MEM Global memory status'#13#10+ '/UTC Universal Time Coordinates'#13#10+ '/IP4 Shows IPv4 Addresses'#13#10+ '/MOON Shows phase of moon'#13#10+ '/POSX=x /POSY=y Position on the screen where to draw text'#13#10+ '/RIGHT Draw onto top right'#13#10+ '/FONT=NAME Specifies font-name.'#13#10+ '/FC=COLOR Font-color in hexadecimal'#13#10+ '/FSIZE=SIZE Font size'#13#10+ '/ERROR Error of the day'#13#10+ '/MIRC=Channel Shows the last chat channel message in mIRC'#13#10+ '/HOLIDAY Shows the current holiday, if theres is one.'#13#10+ '/BOLD Use Bold Font' ),'DelpFo Help',0); exitprocess(0); end; if args.IndexOf(SWITCH_CLOSE)>-1then begin if globalfindatom(delpfo_atom_main)>0then begin globaladdatom(delpfo_atom_close);globaldeleteatom(Globalfindatom(delpfo_atom_main)); end else begin Messagebox(0,PChar(loadstr(106)), appname,mb_iconinformation);exitprocess(dword(-1)); end; exitprocess(0); end; if globalfindatom(DELPFO_ATOM_MAIN)>0then begin messagebox(0,pchar(loadstr(104)),appname,mb_iconwarning);exitprocess( error_already_exists); end; globaladdatom(delpfo_atom_main); getclientrect(getdesktopwindow,r); r.TopLeft.x:=StrToIntDef(args.values[switch_posx],0); r.TopLeft.y:=strtointdef(args.values[Switch_posy],0); monitor:=tcanvas.Create; monitor.Handle:=GetWindowDC(getdesktopwindow); if args.IndexOfName(switch_font)>-1then monitor.Font.Name:=args.Values[SWITCH_FONT]; monitor.Font.Color:=StrToIntDef('$'+args.values[SWITCH_FC],0); monitor.Font.Size:=strtointdef(args.values[switch_fsize],monitor.Font.Size); if args.IndexOf(switch_bold)>-1then monitor.Font.Style:=[fsBold]; mirc:=tmirccontrol.create(nil); loop: text:=''; getsystemtime(utc);Getlocaltime(moontime); uptime:=encodetime(0,0,0,1)*gettickcount; mem.dwLength:=sizeof(mem); globalmemorystatus(mem); if args.IndexOf(SWITCH_UPTIME)>-1then Text:=format(loadstr(100),[trunc( uptime),formatdatetime(loadstr(101),uptime)]); if args.IndexOf(SWITCH_UTC)>-1 then text:=text+'UTC:'+formatdatetime(loadstr(105), systemtimetodatetime(utc))+#32; if args.IndexOf(SWITCH_MEM)>-1then text:=text+format(loadstr(102),[ mem.dwMemoryLoad]); regopenkey(HKEY_LOCAL_MACHINE, 'SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces',netadaptors); regqueryinfokey(netadaptors,nil,nil,nil,@netcount,nil,nil,nil,nil,nil,nil,nil); if args.IndexOf(SWITCH_IPV4)>-1then begin ips:=tstringlist.Create; for i:=0to netcount-1do begin regenumkey(netadaptors,i,kname,max_path); regopenkey(netadaptors,kname,hk); rs:=4; regqueryvalueex(hk,'EnableDhcp',nil,nil,@enabledhcp,@rs); rs:=max_path; if enableDhcp=1then regqueryvalueex(hk,'DhcpIPAdress',nil,nil,@buff,@rs)else regqueryvalueex(hk,'IPAddress',nil,nil,@buff,@rs); ips.Add(buff); regclosekey(hk); end; text:=text+'IPs:'+ips.CommaText; ips.Free; end; text:=text+#32; regclosekey(netadaptors); if args.IndexOf(SWITCH_MOON)>-1then begin moon:=PhaseOfMoon(moontime); text:=text+format(loadstr(103),[loadstr(200+moon.MoonType)]); end; if args.IndexOfName(switch_mirc)>-1then begin mirc.active:=false; mirc.mIRCHandle:=findwindow('mIRC',nil); mirc.Active:=true; text:=text+mirc.GetLastLine(args.values[switch_mirc])+#32; end; if args.IndexOf(switch_holiday)>-1then text:=text+GetHoliday; if args.IndexOf(switch_error)>-1then text:=text+'EOTD:'+ syserrormessage(erroroftheday)+#32; if args.IndexOf(SWITCH_RIGHT)>-1then r.Left:=r.Right-(5+monitor.TextWidth(text)); monitor.TextOut(r.TopLeft.x,r.TopLeft.y,text); if globalfindatom(delpfo_atom_close)>0 then close; sleep(1000); goto loop; end.
When I went for a host home visit Gary left the charger out in the rain. And now it won’t turn on. All four fuses were ok. The output of the charger was zero. The charger is really expensive because of the voltage output being 35 volt at 20 amps. building it is really hard plus keeping it cool is not easy as well.
I believe that one of the two capacitors has leaked(because of the brown marks right by the vented Capacitor in the top board. The capacitors are 1000uf 50v
If it is possible to charge a battery that was originally used 20 amps with 5 amps instead please let me know
Today I got an idea on a proram I could make that would be useful and unqic, so here it is a calculator that lets you add, subtract and multiply dates and times together. It uses Delphi’s TDateTime variable type that the integer part is the days and fraction part is time.
program timecalc;
{$APPTYPE CONSOLE}
{$RESOURCE TIMECALC_RES.RES}
uses
SysUtils,
Windows,
Classes;
type
TDateTimeOp=function(S1//First parameter for the op
,S2//second parameter for the op
:string):TDatetime;//Answer for the op
var systime:systemtime;//used for UTC Time
exename:string;
ops,//stringlist with op functions in TDateTimeOp type
timeconsts//string list for the constants As PDateTime type
:tstringlist;
pdt:pdatetime;
timefunc:TDateTimeOp;
yMinutes:DWord;
noresult:boolean;
FUNCTION GetDateTime(s:string):tdatetime;
begin
if timeconsts.IndexOf(s)>-1then result:=PDateTime(timeconsts.Objects[
timeconsts.IndexOf(s)])^else
if((strscan(pchar(s),DateSeparator)<>nil)and(strscan(pchar(s),TimeSeparator)<>nil))then
result:=strtodatetime(s)else if strscan(pchar(s),timeseparator)<>nil then result:=strtotime(
s) else if(strscan(pchar(s),DateSeparator)<>nil)then result:=strtodate(s)else if
strtointdef(s,-1)<>-1 then result:=strtoint(s)*encodetime(0,1,0,0)else
NoResult:=true;
end;
function addtime(S1,S2:string):TDateTime;
begin
result:=Getdatetime(s1)+GetDateTime(S2);
end;
function SubTime(S1,S2:string):tdatetime;
begin
result:=GetDateTime(s1)-GetDateTime(s2);
end;
function Multiply(s1,s2:String):TDatetime;
begin
result:=getdatetime(s1)*strtofloat(s2);
end;
begin
exename:=extractfilename(paramstr(0));
if paramcount=0then begin
writeln('Usage:',exename,' [datetimeX] [op] [datetimeY]');
writeln('Ops:');
writeln('+ Addition.');
writeln('- Subtraction.');
writeln('* Multiply([datetimeY] is a number not a date or time when this op is used)');
writeln;
writeln('[datetimeX] and [datetimeY] can be date, a time or both');
writeln('If [datetimeX] or [datetimeY] have both date and time they must be surrounded with quotes "hh:mm:ss mm/dd/yyyy"');
writeln;
writeln('[datetimeX] or [datetimeY] can also be one of these operators:');
writeln('NOW Current local datetime.');
writeln('UTC UTC Time.');
writeln('WEEK Length of one week');
writeln('DAY Length of one day');
writeln('MONTH Length of one month');
writeln('YEAR Length of one year');
writeln('DATE Current local date');
writeln('TIME Current local time');
writeln('%ERRORLEVEL% Use the time and date from a previous answer. Use %ERRORLEVEL% variable from the NT Command prompt');
writeln;
writeln('Examples:');
writeln('Add one week from now: ',exename,' NOW + WEEK');
writeln('How much longer until 1:00pm: ',exename,' TIME - 1:00PM');
write('Press enter to quit...');
readln;
exitprocess(0);
end;
ops:=tstringlist.Create;
ops.AddObject('+',tobject(@addtime));
ops.Addobject('-',tobject(@subtime));
ops.AddObject('*',tobject(@multiply));
timeconsts:=tstringlist.Create;
new(pdt);
pdt^:=now;
timeconsts.AddObject('NOW',tobject(pdt));
new(pdt);
getsystemtime(systime);
pdt^:=systemtimetodatetime(systime);
timeconsts.AddObject('UTC',tobject(pdt));
new(pdt);
pdt^:=7;
timeconsts.AddObject('WEEK',tobject(pdt));
new(pdt);
pdt^:=1;
timeconsts.AddObject('DAY',tobject(pdt));
new(pdt);
pdt^:=30;
timeconsts.AddObject('MONTH',tobject(pdt));
new(pdt);
pdt^:=365;
timeconsts.AddObject('YEAR',tobject(pdt));
new(pdt);
pdt^:=DATE;
timeconsts.AddObject('DATE',tobject(pdt));
new(pdt);
pdt^:=TIME;
timeconsts.AddObject('TIME',tobject(pdt));
yminutes:=0;
case ParamCount of
1:begin writeln('Need more parameters');exitprocess(0);end;
2:begin
if ops.IndexOf(paramstr(2))=-1then begin
writeln(paramstr(2),' is not a valid op');exitprocess(0);
end else begin
@timefunc:=Pointer(ops.Objects[ops.indexof(paramstr(2))]);
yminutes:=trunc(timefunc(paramstr(1),'0')/encodetime(0,1,0,0));
end;
end;
3:begin if ops.IndexOf(paramstr(2))=-1then begin
writeln(paramstr(2),' is not a valid op');exitprocess(0);
end else begin
@timefunc:=Pointer(ops.Objects[ops.indexof(paramstr(2))]);
yminutes:=trunc(timefunc(paramstr(1),paramstr(3))/encodetime(0,1,0,0));
end;
end;
else begin writeln('Too Many Parameters');exitprocess(0);end;
end;
if noresult then begin writeln('Bad [datetimeX] or [datetimeY] parameters');
exitprocess(0);end;
writeln(datetimetostr(yminutes*encodetime(0,1,0,0)));
exitprocess(yminutes);
end.
All programs are virus free. Some antivirus software might say its "suspicious" or a "Potentionaly Unwanted Program". Some of them rate them on what there code looks like no matter if theres a definition in the virus database. If any of them are detected any Antivirus I will zip the software with the password "justin" j is lowercase
delphijustin Industries is an Autism Supported Business