Go语言计算指定年月天数的方法

本文实例讲述了Go语言计算指定年月天数的方法。分享给大家供大家参考。具体实现方法如下:

复制代码 代码如下:package main
import (
    “fmt”
    “bufio”
    “os”
    “regexp”
    “strconv”
)
func main() {
    year := input(“year”, “^[0-9]{1}[0-9]{3}$”)
    month := input(“month”, “^(0{1}[0-9]{1}|1{1}[0-2]{1})$”)
    count(year, month)
    fmt.Println(“Press Enter button to continue …”)
    reader := bufio.NewReader(os.Stdin)
    lastInput, _, err := reader.ReadRune()
    if err != nil {
        fmt.Fprintln(os.Stderr, “Occur error when input (last) ‘”, lastInput, “‘:”, err)
    }
    return
}
func count(year int, month int) (days int) {
    if month != 2 {
        if month == 4 || month == 6 || month == 9 || month == 11 {
            days = 30
 
        } else {
            days = 31
            fmt.Fprintln(os.Stdout, “The month has 31 days”);
        }
    } else {
        if (((year % 4) == 0 && (year % 100) != 0) || (year % 400) == 0) {
            days = 29
        } else {
            days = 28
        }
    }
    fmt.Fprintf(os.Stdout, “The %d-%d has %d days.\n”, year, month, days)
    return
}
func input(name string, regexpText string) (number int) {
    var validNumber = false
    for !validNumber {
        fmt.Println(“Please input a”, name, “: “)
        reader := bufio.NewReader(os.Stdin)
        inputBytes, _, err := reader.ReadLine()
        if err != nil {
            fmt.Fprintln(os.Stderr, “Occur error when input”, name, “:”, err)
            continue
        }
        inputText := string(inputBytes)
        validNumber, err = regexp.MatchString(regexpText, inputText)
        if err != nil {
            fmt.Fprintln(os.Stderr, “Occur error when match”, name, “(“, inputText, “):”,err)
            continue
        }
        if validNumber {
            number, err = strconv.Atoi(inputText)
            if err != nil {
                fmt.Fprintln(os.Stderr, “Occur error when convert”, name, “(“, inputText, “):”, err)
                continue
            }
        } else {
            fmt.Fprintln(os.Stdout, “The”, name, “(“, inputText, “) does not have the correct format!”)
        }
    }
    fmt.Println(“The input”, name, “: “, number)
    return
}

希望本文所述对大家的Go语言程序设计有所帮助。

原创文章,作者:DLIEB,如若转载,请注明出处:https://www.beidanyezhu.com/a/26738.html

(0)
DLIEB的头像DLIEB
上一篇 2025-01-05
下一篇 2025-01-05

相关推荐

  • go语言可以用哪些框架

    go语言使用的框架有:1、Beego框架;2、Buffalo框架;3、Echo框架;4、Gin框架;5、Iris框架;6、Revel框架。 6款好用的go语言web框架: Beeg…

  • go语言怎么引入包

    go语言引入包的方法:可以直接使用【import "包名"】来引入一个包。如果需要同时引入多个包,可以使用【import {"包名" &qu…

    2025-01-07
  • go语言有什么开发工具

    go语言开发工具有:1、GoLand;2、LiteIDE;3、Eclipse。LiteIDE是一款开源、跨平台的轻量级Go语言集成开发环境。 开发工具介绍: 1、GoLand Go…

    2025-01-07
  • vscode如何配置go语言开发环境

    Golang 环境配置 1) 首先下载适合你系统的安装包 2)下载完成安装到指定目录即可。我这里是(D:\Go)。 3)配置Glang环境变量 进入我的电脑->高级设置-&g…

    2025-01-07
  • go语言defer怎么用

    go语言defer的用法:1、defer语句在函数返回之前或函数中的return语句之后执行;2、多个defer语句的执行顺序是逆序执行;3、在panic语句后的defer语句不执…

  • windows下如何搭建go语言开发环境

    windows下搭建go语言开发环境的方法:1、在官网下载go语言开发包;2、安装go语言开发包;3、设置GOPATH环境变量;4、测试go开发包是否安装成功。 具体步骤如下: 一…

    2025-01-07
  • go语言的7大优势是什么

    go语言的优势有:1、学习曲线容易;2、开发效率和运行效率高;3、自由高效;4、拥有强大的标准库;5、部署方便;6、高度支持并发性;7、稳定性高。 go语言的优势: 1、学习曲线容…

  • go语言指的是什么

    go语言是一种静态强类型、编译型语言,它的语法与C语言相近。go语言规定每行程序结束后不需要撰写分号,大括号不能够换行放置,if判断式和for循环不需要以小括号包裹。 详细介绍: …

  • go语言适合于什么领域

    go语言适用的领域有:1、服务器编程;2、分布式系统;3、网络编程;4、内存数据库;5、云平台;6、游戏服务端的开发。go语言是一种静态强类型、编译型语言。 Go(又称 Golan…

  • yum如何安装go语言

    yum安装go语言的方法:首先执行【yum -y install golang】命令安装go;然后编辑profile文件,配置环境变量;最后执行【source /etc/profi…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

分享本页
返回顶部