i18n+filtering fork - fluent-templates v2
at main 48 lines 2.3 kB view raw
1// Test program to debug date range calculations 2use chrono::{DateTime, Datelike, Utc, Weekday}; 3 4fn main() { 5 // Simulate today being June 3, 2025 (Tuesday) 6 let now = DateTime::parse_from_rfc3339("2025-06-03T12:00:00Z").unwrap().with_timezone(&Utc); 7 println!("Today: {} ({})", now.format("%Y-%m-%d %A"), now.weekday()); 8 9 // Calculate next week using the current logic 10 let days_until_next_monday = match now.weekday() { 11 Weekday::Mon => 7, // If today is Monday, next Monday is 7 days away 12 _ => 7 - now.weekday().num_days_from_monday(), 13 }; 14 15 let start = (now + chrono::Duration::days(days_until_next_monday as i64)) 16 .date_naive().and_hms_opt(0, 0, 0).unwrap().and_utc(); 17 let end = start + chrono::Duration::days(6); 18 let end = end.date_naive().and_hms_opt(23, 59, 59).unwrap().and_utc(); 19 20 println!("Next week range: {} to {}", start, end); 21 22 // Test the problematic event 23 let event_start = DateTime::parse_from_rfc3339("2025-05-28T22:00:00Z").unwrap().with_timezone(&Utc); 24 let event_end = DateTime::parse_from_rfc3339("2025-06-01T23:59:59Z").unwrap().with_timezone(&Utc); 25 26 println!("Event range: {} to {}", event_start, event_end); 27 28 // Test overlap logic: event_start <= filter_end AND event_end >= filter_start 29 let overlaps = event_start <= end && event_end >= start; 30 println!("Event overlaps with next week: {}", overlaps); 31 32 // Show the correct calculation for next week 33 let today = now.date_naive(); 34 let days_until_monday = (7 - now.weekday().num_days_from_monday()) % 7; 35 let next_monday = if days_until_monday == 0 && now.weekday() != Weekday::Mon { 36 today + chrono::Duration::days(7) 37 } else { 38 today + chrono::Duration::days(days_until_monday as i64) 39 }; 40 41 let correct_start = next_monday.and_hms_opt(0, 0, 0).unwrap().and_utc(); 42 let correct_end = (next_monday + chrono::Duration::days(6)).and_hms_opt(23, 59, 59).unwrap().and_utc(); 43 44 println!("CORRECTED next week range: {} to {}", correct_start, correct_end); 45 46 let correct_overlaps = event_start <= correct_end && event_end >= correct_start; 47 println!("Event overlaps with CORRECTED next week: {}", correct_overlaps); 48}