congrats on that, sounds like a really useful tool. size?
andrepd wrote:
congrats on that, sounds like a really useful tool. size?
Oh, you're asking the size of the program. No idea, we'll wait for souvik, although I could probably estimate it from a beta that he sent me to help test SEs.
About 5500 bytes, but i think if i optomized it it could be smaller. Kerm, do we get more points if we optomize it? I stink at optomizing...

Edit: Kerm, what are the changes for basic programmers from dcs7rc1 to dcs7 final. I need to know so i dont have to test again with the final dcs7. I havent downloaded the final version yet because of school.
You will certainly get marked down for a 5000 byte guessing game and marked up for a 100 byte 3D FPS, certainly. Very Happy If it's a few bytes' difference, it's not the end of the world, though. The final DCS7.0 adds some bugfixes, most notably for BASIC programmers with making the editor not crash if you [ON]-break at a TI-BASIC Menu() and choose Goto.
After many days of testing and debugging, Reminder is ready to be submitted!

Entry submitted!
souvik1997 wrote:
After many days of testing and debugging, Reminder is ready to be submitted!

Entry submitted!


Now that you've submitted it - I am allowing you to, in your next version, use my type of date storage (from countdown manager) to do non-specific dates - it's three numbers:

Once: Date is MM/DD/YYYY

Code:
0 0 DDMMYYYY

Yearly exact: Date is MM/DD

Code:
1 0 DDMM

Yearly Relative: The Nth (5=Last) W (day of week. 1=Sun, 2=Mon, etc) in Month MM

Code:
1 N MM.W

Yearly Complex Relative: The V (Day of week) [direction L] (-1=before, 0=closest to, 1=after) the Nth W (Day of week) of Month MM

Code:
1 N.L MM.WV

Yearly Anchored Relative: The W (day of week) [direction L] date MM/DD

Code:
1 W.L DDMM

Monthly exact: Date is DD

Code:
2 0 DD

Monthly Reverse exact: The DD-to-last day:

Code:
2 0 -DD

Monthly Relative: The Nth W (day of week)

Code:
2 N W

Monthly Complex Relative: The V (Day of week) [direction L] the Nth W (Day of week)

Code:
2 N.L W.V

Monthly Anchored Relative: The W (day of week) [direction L] date DD

Code:
2 W.L DD.09

Weekly: The next W (day of week)

Code:
3 0 W


I even have an Easter-calculator if you need one.
Whoa, that's a pretty complete set of recurrence forms (and complex, to boot Razz). Do you have code that can generate and parse those?
i dont do that in my program, it would get too complex.

In my program, i take the outputs from GUImouse and put it together in one string

Code:

sum(12,whatever,0 //stores output in Str0
//more code
sum(12,whatever,1 // stores output in Str1


then i concatenate Str1 and Str0 // Str1+Str0-> str1

to parse this, i use a series of expr() and sub() commands.
Hey, that's not a bad way of doing it. In fact, it occurs to me that that would be pretty widely-applicable for saving the state of input elements in a DCSB Libs GUI and repopulating an identical one with the same data later.
I also think it is the most efficient method of data storage for this situation.
souvik1997 wrote:
I also think it is the most efficient method of data storage for this situation.
Indeed, what you lose in delimiters you gain in easier parsing, in my opinion.
Kerm, I resubmitted my contest entry. Could you please confirm the email.

For anyone that uses my program and has trouble reading the readme under windows, use MS Word and select utf-7 as the encoding
KermMartian wrote:
Whoa, that's a pretty complete set of recurrence forms (and complex, to boot Razz). Do you have code that can generate and parse those?


This is very tangled up - I'm gonna untangle it in 3.0


Code:
: 0→X:Repeat X=dim(∟CDWN:X+1→X
: 4X+5→Z
: {∟CDWNZ(Z),∟CDWNZ(Z+1),∟CDWNZ(Z+2),∟CDWNZ(Z+3→∟CCDWN
: ∟CCDWN(4→∟NAME(X
: If ∟CCDWN(1)=0:Then:∟CCDWN(3→∟CDWN(X
: Else
: If ∟CCDWN(1)=3:Then
: ∟CCDWN(3→W
: ∟DATE(1→Y:∟DATE(2→M:∟DATE(3→D
: 0→θ
: If Y/4=iPart(Y/4:1→θ
: If Y/100=iPart(Y/100:0→θ
: If Y/400=iPart(Y/400:1→θ
: {31,28+θ,31,30,31,30,31,31,30,31,30,31}→∟D8MAX
: Repeat W=dayOfWk(Y,M,D
: D+1→D
: If D=∟D8MAX(M)+1:Then
: M+1→M:1→D
: If M=13:Then
: Y+1→Y:1→M
: 0→θ
: If Y/4=iPart(Y/4:1→θ
: If Y/100=iPart(Y/100:0→θ
: If Y/400=iPart(Y/400:1→θ
: 28+θ→∟D8MAX(2
: End:End:End
: Y+10000M+1000000D→∟CDWN(X
: DelVar ∟D8MAX
: Else
: If ∟CCDWN(1)=2 and ∟CCDWN(2:Then
: 0→F
: Lbl F3
: ∟DATE(1→Y
: ∟DATE(2)+F→M
: If M>12:Then
: M-12→M:Y+1→Y
: End
: iPart(∟CCDWN(3→W
: 10(∟CCDWN(3)-W→V
: iPart(∟CCDWN(2)+.1→N
: 10(∟CCDWN(2)-N)→L
: 0→θ:If Y/4=iPart(Y/4:1→θ
: If Y/100=iPart(Y/100:0→θ
: If Y/400=iPart(Y/400:1→θ
: {31,28+θ,31,30,31,30,31,31,30,31,30,31}→∟D8MAX
: If N=5:Then
: ∟D8MAX(M→D:If W≠dayOfWk(Y,M,D:Then:Repeat W=dayOfWk(Y,M,D:D-1→D:End:End
: Else
: 7N-6→D:If W≠dayOfWk(Y,M,D:Then:Repeat W=dayOfWk(Y,M,D:D+1→D:End:End
: End
: If V:Then
: Repeat V=dayOfWk(Y,M,D
: D+L→D
: If D=0:Then
: M-1→M:If M=0:Then
: 12→M:Y-1→Y
: 0→θ:If Y/4=iPart(Y/4:1→θ
: If Y/100=iPart(Y/100:0→θ
: If Y/400=iPart(Y/400:1→θ
: 28+θ→∟D8MAX(2
: End
: ∟D8MAX(M→D
: End
: If D=1+∟D8MAX(M:Then
: M+1→M:If M=13:Then
: 1→M:Y+1→Y
: 0→θ:If Y/4=iPart(Y/4:1→θ
: If Y/100=iPart(Y/100:0→θ
: If Y/400=iPart(Y/400:1→θ
: 28+θ→∟D8MAX(2
: End:End
: End:End
: F→G
: If Y<∟DATE(1) or (Y=∟DATE(1) and M<∟DATE(2)) or (Y=∟DATE(1) and M=∟DATE(2) and D≤∟DATE(3:F+1→F
: If F≠G:Goto F3
: Y+10000M+1000000D→∟CDWN(X
: Else
: If ∟CCDWN(1)=2 and ∟CCDWN(2)=0:Then
: 0→F
: Lbl F2
: ∟DATE(1→Y
: ∟DATE(2)+F→M
: If M>12:Then
: M-12→M:Y+1→Y
: End
: If ∟CCDWN(3)>0:Then
: iPart(∟CCDWN(3→D
: 10(∟CCDWN(3)-D→Z
: 0→θ:If Y/4=iPart(Y/4:1→θ
: If Y/100=iPart(Y/100:0→θ
: If Y/400=iPart(Y/400:1→θ
: {31,28+θ,31,30,31,30,31,31,30,31,30,31}→∟D8MAX
: If D>∟D8MAX(M:Then
: If Z:Then
: ∟D8MAX(M→D
: Else
: Repeat D≤∟D8MAX(M
: M+1→M
: If M=13:Then
: 1→M:Y+1→Y
: 0→θ:If Y/4=iPart(Y/4:1→θ
: If Y/100=iPart(Y/100:0→θ
: If Y/400=iPart(Y/400:1→θ
: 28+θ→∟D8MAX(2
: End:End
: End:End
: Else
: iPart(abs(∟CCDWN(3→D
: 10abs(D+∟CCDWN(3→Z
: ∟DATE(1→Y
: ∟DATE(2→M
: 0→θ:If Y/4=iPart(Y/4:1→θ
: If Y/100=iPart(Y/100:0→θ
: If Y/400=iPart(Y/400:1→θ
: {31,28+θ,31,30,31,30,31,31,30,31,30,31}→∟D8MAX
: If D>∟D8MAX(M:Then
: If Z:Then
: ∟D8MAX(M)-1→D
: Else
: Repeat D>∟D8MAX(M
: M+1→M
: If M=13:Then
: 1→M:Y+1→Y
: 0→θ:If Y/4=iPart(Y/4:1→θ
: If Y/100=iPart(Y/100:0→θ
: If Y/400=iPart(Y/400:1→θ
: End:End
: End:End
: ∟D8MAX(M)-D→D
: End
: F→G
: If Y<∟DATE(1) or (Y=∟DATE(1) and M<∟DATE(2)) or Y=∟DATE(1) and M=∟DATE(2) and D≤∟DATE(3:F+1→F
: If F≠G:Goto F2
: Y+10000M+1000000D→∟CDWN(X
: Else
: If ∟CCDWN(1)=1 and ∟CCDWN(2)=0:Then
: iPart(∟CCDWN(3)/100→D
: 100fPart(∟CCDWN(3)/100→M
: ∟DATE(1)→Y
: If ∟DATE(2)>M or (∟DATE(2)=M and ∟DATE(3)≥D:Y+1→Y
: Y+10000M+1000000D→∟CDWN(X)
: Else
: If ∟CCDWN(1)=1 and ∟CCDWN(2):Then
: iPart(∟CCDWN(2)+.1→N
: iPart(10(∟CCDWN(2)-N→L
: iPart(∟CCDWN(3→M
: iPart(10(∟CCDWN(3)-M→W
: iPart(100(∟CCDWN(3)-M)-10W→V
: 0→F:Lbl F:F→G
: ∟DATE(1)+F→Y
: 0→θ
: If Y/4=iPart(Y/4:1→θ
: If Y/100=iPart(Y/100:0→θ
: If Y/400=iPart(Y/400:1→θ
: {31,28+θ,31,30,31,30,31,31,30,31,30,31}→∟D8MAX
: If N=5:Then
: ∟D8MAX(M)→D
: If W≠dayOfWk(Y,M,D:Then:Repeat W=dayOfWk(Y,M,D:D-1→D:End:End
: Else:7N-6→D
: If W≠dayOfWk(Y,M,D:Then:Repeat W=dayOfWk(Y,M,D:D+1→D:End:End:End
: If V:Then
: Repeat V=dayOfWk(Y,M,D
: D+L→D
: If D=0:Then
: M-1→M
: If M=0:Then
: 12→M:Y-1→Y:0→θ
: If Y/4=iPart(Y/4:1→θ
: If Y/100=iPart(Y/100:0→θ
: If Y/400=iPart(Y/400:1→θ
: 28+θ→∟D8MAX(2):End
: ∟D8MAX(M)→D:End
: If D=∟D8MAX(M) and L=1:Then
: M+1→M
: If M=13:Then
: 1→M:Y+1→Y:0→θ
: If Y/4=iPart(Y/4:1→θ
: If Y/100=iPart(Y/100:0→θ
: If Y/400=iPart(Y/400:1→θ
: 28+θ→∟D8MAX(θ):End
: 1→D:End:End:End:End
: DelVar ∟D8MAXIf Y<∟DATE(1) or (Y=∟DATE(1) and M<∟DATE(2)) or (Y=∟DATE(1) and M=∟DATE(2) and D≤∟DATE(3:F+1→F
: If F≠G:Goto F
: Y+10000M+1000000D→∟CDWN(X)
: If F:Goto Z
: End:End:Lbl Z:End:End:End:End
:End


It puts the next occourance of the event into the format DDMMYYYY, one number
Impressive depth; did SourceCoder help you keep all that straight while you were writing it?
KermMartian wrote:
Impressive depth; did SourceCoder help you keep all that straight while you were writing it?


Actually, no. I wrote it on-calc before I knew of SourceCoder, then just now used SC to put it up.
Xeno_Cre8or wrote:
KermMartian wrote:
Impressive depth; did SourceCoder help you keep all that straight while you were writing it?


Actually, no. I wrote it on-calc before I knew of SourceCoder, then just now used SC to put it up.
Wait, then when did you learn about SourceCoder? O_O
KermMartian wrote:
Xeno_Cre8or wrote:
KermMartian wrote:
Impressive depth; did SourceCoder help you keep all that straight while you were writing it?


Actually, no. I wrote it on-calc before I knew of SourceCoder, then just now used SC to put it up.
Wait, then when did you learn about SourceCoder? O_O


When working on updating this - about early November last year.
Ah, fair enough. You're planning on updating and completing it then, I hope? (Assuming that it's not already complete...)
KermMartian wrote:
Ah, fair enough. You're planning on updating and completing it then, I hope? (Assuming that it's not already complete...)


it's the Countdown Master I'm posting about DEing
Xeno_Cre8or wrote:
KermMartian wrote:
Ah, fair enough. You're planning on updating and completing it then, I hope? (Assuming that it's not already complete...)


it's the Countdown Master I'm posting about DEing
Ah yes, you had mentioned that previously and it slipped my mind. Good for you. Smile
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 5 of 5
» All times are GMT - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement