Skip to content

Commit 002391d

Browse files
completed algorithms for selected files
1 parent 76a7f8e commit 002391d

File tree

1 file changed

+38
-3
lines changed

1 file changed

+38
-3
lines changed

lesson_07/conditionals/src/part_g.ts

Lines changed: 38 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,17 @@
55
* @returns
66
*/
77
export function findLargestNumber(numbers: number[]): number {
8-
return 0;
8+
if (numbers.length === 0) {
9+
return 0;
10+
}
11+
12+
let largest = numbers[0];
13+
for (let i = 1; i < numbers.length; i++) {
14+
if (numbers[i] > largest) {
15+
largest = numbers[i];
16+
}
17+
}
18+
return largest;
919
}
1020

1121
/**
@@ -16,6 +26,10 @@ export function findLargestNumber(numbers: number[]): number {
1626
* @returns
1727
*/
1828
export function isPalindrome(text: string): boolean {
29+
const cleaned = text.replace(/[^a-zA-Z0-9]/g, "").toLowerCase();
30+
31+
return cleaned === cleaned.split("").reverse().join("");
32+
1933
return false;
2034
}
2135

@@ -34,7 +48,28 @@ export function daysUntilBirthday(
3448
currentMonth: number,
3549
currentDay: number,
3650
birthMonth: number,
37-
birthDay: number
51+
birthDay: number,
3852
): number {
39-
return 0;
53+
const today = new Date();
54+
const currentYear = today.getFullYear();
55+
56+
// Create a date for the birthday this year
57+
let nextBirthday = new Date(currentYear, birthMonth - 1, birthDay);
58+
59+
// If the birthday has already passed this year, set it for next year
60+
if (
61+
birthMonth < currentMonth ||
62+
(birthMonth === currentMonth && birthDay < currentDay)
63+
) {
64+
nextBirthday = new Date(currentYear + 1, birthMonth - 1, birthDay);
65+
}
66+
67+
const currentDate = new Date(currentYear, currentMonth - 1, currentDay);
68+
69+
// Calculate the difference in milliseconds and convert to days
70+
const diffTime = nextBirthday.getTime() - currentDate.getTime();
71+
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
72+
73+
return diffDays;
4074
}
75+

0 commit comments

Comments
 (0)