The sentence "It has rained all day" is perfectly good English and can be rendered
«Ha llovido todo el día» in Spanish, which flies in the face of what you're saying other sites are teaching. There's no problem with this construction, which makes use of the present perfect tense.
It's also possible to say
«Ha estado lloviendo todo el día». This sentence fits the model you wrote about ("ing" gerund), but the wording is
misleading. A verb
cannot be created with a gerund; what was meant is the Spanish
gerundio. That is used to create a verb in the progressive/continuous tense (a
gerundio correlates with the English
present participle). The progressive/continuous tense is created with a conjugated form of 'be' and a present participle (in Spanish, it's a conjugated form of '
estar' plus a '
gerundio').
(The English gerund also ends in '-ing', to be sure, but its role in a sentence is always a
noun.)
By the way, the verb
llover can be conjugated into
every verb tense, but only in the third person. It doesn't just exist in the indicative; it also exists in the subjunctive. There's no imperative mood form of the verb, but a third person subjunctive mood form, preceded with '
que', can be used to yield "Let it rain."
The same goes for the verb
nevar (to snow), which is probably what you meant to write instead of 'swim'.