As for your second question, unfortunately, it takes a little bit of experience. The DNS system writes the year, month, day, hour, minute, and second in specific parts of the memory (from 0x0300553C to 0x03005544, inclusive). The year is two byes, while the others are one byte, and 0x0300552E and 0x03005540 are empty.
What you need to do is use copybyte to copy one of the bytes to the memory address of a variable. Variable 0x8004 is stored at 0x020370C0, and is two bytes. So, for example, to store the month into variable 0x8004:
...
copybyte 0x020370C0 0x0300553F
...
You can then use the variable in scripts, for comparing, or use buffernumber to store the variable's value into a buffer, for display.
I would provide a sample script, but my post is getting long enough as-is. Just a few precautions: First, the hour is stored in 24 hour format, so 4PM is stored as 0x10, not 0x4. Secondly, buffernumber just makes the number appear, and while this is usually good, it provides a pitfall when time is involved. If it's 4:05, the time will be rendered as 4:5 with buffers. The best solution is to check if the minute is less than 10, and if it is, [buffer1]:0[buffer2], otherwise, [buffer1]:[buffer2]. Thirdly, there's only three buffers, so you'll have to display the time and date in different text boxes.
Good luck!