 Today, we're going to be looking at holidays. Many holidays fall on specific days. New Year's Day, New Year's Eve, Christmas Day, Christmas Eve. Those are the same. They have dates for when they fall, but other holidays fall on different days. Not just a date, for example, Mother's Day and Father's Day. Like, Father's Day falls on the third Sunday of the month. Where Easter is even weirder because it has to do with phases of the moon, I believe. And then there's also different Easter's depending on your religious background and possibly countries. And Mother's Day has different countries, as we're all going to look at here in a moment. Real quick, let me mention the Cal Command, which will show you a calendar, which is probably not installed on pretty much all Linux systems by default. It's even built into Busybox, so even lightweight systems might have it, which just gives you a calendar that you can look through. We've talked about that before, but there's another command actually called Calendar may not be installed by default, but should be in your repositories. If you're, for example, on a Debian-based system, you should be able to do sudo apt install calendar or whatever package manager you have for your system. And when you run that command just by typing calendar, it's going to list out starting today. It's going to give you today and tomorrow's holidays. Now, you can see the list is very long because it's not just holidays. It's anything that happened on a date. It's very thorough. If we go up here, you can even see like today is January 12th at the time of recording this back in January 12th in 1966. Batman, the TV series debuted on ABC, so it's very thorough. And it also has all your traditional holidays, which is what we're going to be looking at today. So how can we use this to get some of those more odd holidays? We're going to, well, use it and then grep through it. So we can also do dash A for after and I can say 30. And it actually starts today and gives me holidays for the next 30 days, or I can go go B. And it's going to start today and go back in this case, I said 30. So we'll go back 30 days so I can scroll up here and go back through it, the list. And we can also give it a date so I can say dash T. And if I give it a month, I can say like 0601. And what that will do is it will give you June 1st and June 2nd because I didn't give it a range. So it automatically does the date I give it plus one day. So here it's going to go by this year since I didn't give it a year, but you can give it a year as well. So I can say 25. So now it's going to look at the year 2025, the sixth month, the first day, and give me two days worth of holidays. Or I can run that same command and say dash A and say 31, depending on what month it is. There's going to be at most 31 days in a month. So this should give me the full month and maybe a little bit of the next month. So there we go. We have June into July with that command. So we can use this if we know, for example, I can use that command and then I can grep for father. And when I hit enter, you can see that Father's Day falls on June 15th. And we have two listed there. I don't know why it's listed twice. One specifically says the third Sunday of June. So I don't know if there's another Father's Day in another country that might fall on a different day occasionally. I know that I want the one that's the third Sunday of June. So I can run another grep command and just say Sunday and you have to spell Sunday, right? And I know that I should be getting the one that I'm looking for. And of course we can use the cut command. So I'm using grep and cut here. These are commonly used shell commands that you should get to know. So if you're not familiar how they work, you should learn how they work because you would use them all the time. But basically the grep command is searching for keywords and only outputting lines that have those words. And then cut is saying take the input and we're looking at a character. In this case, our character or delimiter is an asterisk. And then I'm going to say, OK, we're going to cut the line at that. I can say dash F, whether I want field one or field two. I want field one, everything before the asterisk. And there we go. Now I know Father's Day is on June 15th. Again, I can change that. I can come in here and I can change this month to five. And instead of Father's Day, I'm going to grep for the word mother. And you can see there's a few different Mother's Day depending on what country you're in. I know that our Mother's Day is on a Sunday, so I will again grep for Sunday. And there we go. We have Mother's Day and I can run that through the cut command as well. If I wanted just the day, so dash F one for field one. And I know that that in the year 2025, that Mother's Day falls on May 11th. Let's look again at something a little more awkward. So we have again Easter, which can fall in different months again. I don't know exactly how it works, but it has to do with like the lunar phases of the moon and then a certain number of Sundays after that or something. And it also varies depending on your religious background and possibly country as well. But let's go ahead and run the calendar command. Again, I'll give it a year. I'll say the year 2030. We and I'm going to give it a big range here, probably bigger than I need to. I'm going to start at the third month. So March and I'm going to start on March 1st. And I'm going to go go 90 days. That should cover enough ground. And now I'm going to grep for Easter. When I run that, you can see that it brings up other things because we have Palm Sunday, but it lists as seven days before Easter, other holidays, three days before Easter, good Fridays, two days before Easter. And then we have a few Easter's here. We have our Easter Sunday, but then we also have Easter Monday because Easter falls on a Sunday. So a lot of people recognize that on Monday as far as getting your time off for work, which is important. So let's go ahead and I don't know why it's listed there twice as Sunday, but we can take care of that. Let's go ahead and narrow it down to our Easter Sunday just by typing in Easter Sunday here. And now we only get our Easter Sundays, but we just want one. So I'm going to say head dash and one. And now I know in the year 2030 that Easter falls on April 21st. Again, I can run this through the cut command and cut it at that. Give it the dash F1. And now I have just the date. And if I wanted to clean that up in format differently, this is a little more advanced, but we're going to use the date command. We've talked about this in the past, but let's run this again. We're going to say date dash D. You can give it a date, which could be the output of this command. But we also want to make sure we tell it what year to use. I'm going to say 2030. And if I close this up, we should get a formatted date. So here it tells us in the year 2030 Sunday, we have a time date. But we can also say plus percent F. Now I've gone over different ways to use the date command to format dates in the past. So check out my other videos. But here we get a nicely formatted and you can format it in many different ways using this. So you can loop through years and get all that. Now, let's say you don't have the calendar command. Like I said earlier, you probably have the Cal command. And there's a good chance that your Cal command isn't really the original Cal command. It's probably NCAL. Now if I type NCAL, you can see kind of the same thing. But instead of having the days that we go left to right, they're going up and down instead of horizontal, they're vertical. But if I go into my man page, my manual for Cal, you can see here that it lists it as Cal and Cal. And Cal is just basically a newer version of Cal from my understanding with some extra features. And when you install Cal, again, it's probably already installed on your system. There's a good chance, at least on a Debian-based system here, it's really NCAL and it's either being linked or somehow pointing towards to NCAL. So when you're running Cal, you're actually running NCAL, which in general, Cal is a nicely foreign. It's how you're used to looking at a calendar. But for what we're trying to do of getting holidays, sometimes this is a better option. We're going to use that to get Father's Day. So again, NCAL, we can pass it a date. So I can say dash M June, and I can give it a year 2025, right? So, not N, the M. So M saying, look at this date. So month and then I'm giving it a year. So I'm giving it the month of June and the year of 2025. So now let's listen to it this way. And we know that it's the third Sunday of June. So I can then say grep any line that starts with capital SU. And now we get just the Sundays. And we know it's the third one. Now we have four columns though, because of Sunday here. So we're gonna say then, in this case, I'm gonna use AUK. And I'm going to print the fourth column. So again, we have column one, two, three, four. And when I run that, we get the 15th. So I know that Father's Day is on June 15th in the year 2025. And if we go back through our commands here to our Father's Day command right here, and yeah, 2025, we got June 15th. So we are correct. So that's another, obviously, NCAL's probably a lighter weight command and commonly installed where calendar isn't. But calendar does give you again that benefit of just listing everything that might have been specially happening on a day. I do hope you found this useful. I hope that you enjoy it. And yeah, I hope that you have a great day. Visit filmsbychrist.com. That's Chris the K. There's a link in the description there on my channel. I have a support section where you can support me through a few different ways. One of which is Patreon. There's a link in the description of this video for that as well. I would love monthly support from you if you like my videos. If not, if you can't support me financially, but you like my videos, think about liking, sharing, subscribing, commenting. I hope that you have a great day.