Rust语言编程实例100题-004
2021/6/14 12:24:42
本文主要是介绍Rust语言编程实例100题-004,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Rust语言编程实例100题-004
题目:输入某年某月某日,判断这一天是这一年的第几天?
程序分析:以4月8日为例,应该先把前三个月的加起来,然后再加上8天即本年的第几天,如果遇到特殊情况,闰年且输入月份大于等于3时需考虑多加一天。下面的解法仅仅是为了练习知识点而得出的参考答案,当然还有其它的解答方法。大家也可以试一下。
知识点:错误校验,条件判断,字符串分割,动态数组
fn main() { println!("请输入年月日,年月日中间用空格隔开:"); // 获取输入数据 let mut input_text = String::new(); std::io::stdin().read_line(&mut input_text).expect("failed read_line error!"); let string_vec: Vec<&str> = input_text.trim().split_whitespace().collect(); // 校验输入数据 if string_vec.len() != 3 { println!("输入格式错误!请输入年 月 日,中间使用空格隔开!"); return; } // 声明变量 // 年 let year_str = string_vec[0]; let year; // 月 let month_str = string_vec[1]; let month; // 日 let day_str = string_vec[2]; // 校验年份 match year_str.parse::<u32>() { Ok(i) => { year = i; } Err(_) => { println!("您输入的年份 {} 格式错误!", year_str); return; } } // 校验月份 match month_str.parse::<u32>() { Ok(i) => { if i < 1 || i > 12 { println!("您输入的月份 {} 格式错误!", month_str); return; } else { month = i; } } Err(_) => { println!("您输入的月份 {} 格式错误!", month_str); return; } } // 校验日期 match day_str.parse::<u32>() { Ok(day) => { // 日期小于1天直接返回 if day < 1 { println!("您输入的日期 {} 格式错误!", day_str); return; } // 各月份的天数 let mut month_days_vector = vec![31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; // 判断是闰年 if year % 400 == 0 || (year % 4 == 0 && year % 100 != 0) { // year是闰年 // 修改2月份天数 month_days_vector[1] = 29; } // 当前输入的天数 大于月份原有的天数,则提示错误! let current_month_days = month_days_vector[(month - 1) as usize]; if day > current_month_days { println!("您输入的日期 {} 格式错误!{} 年 {} 月的日期天数不得超过{}天!!", day_str, year, month, current_month_days); return; } else { // 计算总天数 // 前month - 1的月份天数 + 当前的日期 i let mut count: u32 = 0; for item in 1..month { count += month_days_vector[(item - 1) as usize]; } count += day; print!("{}年{}月{}日 是 {} 年的第 {} 天", year, month, day, year, count); } } Err(_) => { println!("您输入的日期 {} 格式错误!", day_str); } } }
程序执行结果:
请输入年月日,年月日中间用空格隔开: 2056 12 31 2056年12月31日 是 2056 年的第 366 天 Process finished with exit code 0
这篇关于Rust语言编程实例100题-004的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南