Difficult is the opposite of easy. It means that something requires lots of effort to do it. Hard can be the opposite of "soft" (such as a hard pillow and a soft pillow) but it can also mean "difficult."
For example, you can say:
The test was difficult. = The test was hard.
It's difficult to understand the teacher. = It's hard to understand the teacher.
The word hard is a little more informal, so it's better to use difficult in more formal writing.
The word hard can also be an adverb to describe doing an action with great effort or energy. We often use it with the verbs work and try:
The snow covering the floodlit Edinburgh Castle and Princes Street Gardens is a?sight?to behold?during the winter?season. With Christmas bonhomie, the Edinburgh Castle makes for a fantastic winter retreat.