Go语言:time()函数的用法(案例三天打鱼二天晒网)

2023-12-12 18:59

本文主要是介绍Go语言:time()函数的用法(案例三天打鱼二天晒网),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在Go语言中,time.Time 的类型中,集合许多非常有用的函数,如time.Date(),time.Since(),time.Sub()等。这都大大方便了对于时间的统计。

案例:编写一个函数,判断输入的某一天是打鱼还是晒网.

思路:1、利用time.Date等函数,计算输入的那一天到指定日期的天数

           2、三天打鱼二天晒网,总计是五天,如果按第1、2、3天是打鱼的,那么第4、5天为晒

                网。用总计天数%5的余数,进行判断这一天是打鱼还是晒网。                 

package mainimport ("fmt""time"_ "strconv"
)func getDays(y, m, d int) int {    inputTime := time.Date(y, time.Month(m), d, 0, 0, 0, 0, time.Local)initTime := time.Date(1990, 1, 1, 0, 0, 0, 0, time.Local)//统计输入的日期与当前的日期之间的天数//daysSum := int(time.Since(inputTime).Hours()/24)//将天数转成小时,再除以24得出的结果就是天数,totalDays := int(inputTime.Sub(initTime).Hours()/24)return totalDays + 1 //需要加上1天
}func inputDate() (y,m,d int) {var year, month, day intvar count, i, j inta:for {fmt.Print("请输入年份:")fmt.Scanln(&year)if year >= 1990 {break a} else {count ++fmt.Printf("年份输入有误,您还有%v次机会 ...\n",5 - count)}if count == 5 {fmt.Println("您输入错误已满5次,3秒后将关闭程序...")time.Sleep(3 * time.Second)break a }}b:for {fmt.Print("请输入月份:")fmt.Scanln(&month)if month <= 12 && month >= 1 {break b} else {i ++fmt.Printf("月份输入有误,您还有%v次机会 ...\n",5 - i)}if i == 5 {fmt.Println("您输入错误已满5次,3秒后将关闭程序...")time.Sleep(3 * time.Second)break  b}}c:for {fmt.Print("请输入日期:")fmt.Scanln(&day)if day <= 31 && day >= 1 {break c}else {j ++fmt.Printf("日期输入有误,您还有%v次机会 ...\n",5 - j)}if j == 5 {fmt.Println("您输入错误已满5次,3秒后将关闭程序...")time.Sleep(3 * time.Second)break  c}}return year, month, day
}func main() {daysSum := getDays(inputDate())fmt.Printf("您输入的日期与1990年1月1日相隔%v天... \n",daysSum)daysRes := daysSum % 5switch daysRes {case 1,2,3 :fmt.Println("今天打鱼")case 4,5:fmt.Println("今天晒网")default:fmt.Println("今天休息")}}

输出的结果:

这篇关于Go语言:time()函数的用法(案例三天打鱼二天晒网)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/485616

相关文章

Kotlin运算符重载函数及作用场景

《Kotlin运算符重载函数及作用场景》在Kotlin里,运算符重载函数允许为自定义类型重新定义现有的运算符(如+-…)行为,从而让自定义类型能像内置类型那样使用运算符,本文给大家介绍Kotlin运算... 目录基本语法作用场景类对象数据类型接口注意事项在 Kotlin 里,运算符重载函数允许为自定义类型重

Pandas中统计汇总可视化函数plot()的使用

《Pandas中统计汇总可视化函数plot()的使用》Pandas提供了许多强大的数据处理和分析功能,其中plot()函数就是其可视化功能的一个重要组成部分,本文主要介绍了Pandas中统计汇总可视化... 目录一、plot()函数简介二、plot()函数的基本用法三、plot()函数的参数详解四、使用pl

SpringBoot3.4配置校验新特性的用法详解

《SpringBoot3.4配置校验新特性的用法详解》SpringBoot3.4对配置校验支持进行了全面升级,这篇文章为大家详细介绍了一下它们的具体使用,文中的示例代码讲解详细,感兴趣的小伙伴可以参考... 目录基本用法示例定义配置类配置 application.yml注入使用嵌套对象与集合元素深度校验开发

Java Stream流使用案例深入详解

《JavaStream流使用案例深入详解》:本文主要介绍JavaStream流使用案例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录前言1. Lambda1.1 语法1.2 没参数只有一条语句或者多条语句1.3 一个参数只有一条语句或者多

SpringBoot UserAgentUtils获取用户浏览器的用法

《SpringBootUserAgentUtils获取用户浏览器的用法》UserAgentUtils是于处理用户代理(User-Agent)字符串的工具类,一般用于解析和处理浏览器、操作系统以及设备... 目录介绍效果图依赖封装客户端工具封装IP工具实体类获取设备信息入库介绍UserAgentUtils

MySQL 中的 JSON 查询案例详解

《MySQL中的JSON查询案例详解》:本文主要介绍MySQL的JSON查询的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql 的 jsON 路径格式基本结构路径组件详解特殊语法元素实际示例简单路径复杂路径简写操作符注意MySQL 的 J

C语言中位操作的实际应用举例

《C语言中位操作的实际应用举例》:本文主要介绍C语言中位操作的实际应用,总结了位操作的使用场景,并指出了需要注意的问题,如可读性、平台依赖性和溢出风险,文中通过代码介绍的非常详细,需要的朋友可以参... 目录1. 嵌入式系统与硬件寄存器操作2. 网络协议解析3. 图像处理与颜色编码4. 高效处理布尔标志集合

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模