当前位置: 代码迷 >> 综合 >> GO语言---三天打鱼两天晒网---中国有句俗语叫“三天打鱼两天晒网”,某人从90年1月1日起开始“三天打鱼两天晒网”。问这个人在以后的某一天中是在“打渔”,还是在“晒网”. **
  详细解决方案

GO语言---三天打鱼两天晒网---中国有句俗语叫“三天打鱼两天晒网”,某人从90年1月1日起开始“三天打鱼两天晒网”。问这个人在以后的某一天中是在“打渔”,还是在“晒网”. **

热度:8   发布时间:2023-11-24 22:35:53.0

中国有句俗语叫“三天打鱼两天晒网”,某人从90年1月1日起开始“三天打鱼两天晒网”。问这个人在以后的某一天中是在“打渔”,还是在“晒网”. **

package mainimport "fmt"//思路是先计算出输入的时间与1990年1月1日间隔多少天,然后再用天数对5取模来判断var MONTH = [12]int{
    31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}//存储非闰年的每月天数func IsLeap(year int)  int{
        //函数功能--判断是否闰年if year%4 == 0 && year%100 != 0 || year%400 == 0{
    return 366}else{
    return 365}
}func SumDay(year, month, day int) int{
    sum := 0for i:=1990;i < year;i++{
       //计算出从1990到year-1年的总天数sum += IsLeap(i)}//再计算year年的天数for i:=0;i < month-1;i++{
     //计算一月到month-1月的天数sum += MONTH[i]}sum += day   //加上当月的天数if month>2 && IsLeap(year) == 364{
    sum += 1}return sum
}
func  main()  {
    var year,month,day intfmt.Print("请输入日期:")fmt.Scanln(&year, &month, &day)n := SumDay(year, month, day)ret := n%5fmt.Println(n)if ret == 4 || ret == 0{
    fmt.Println("他在晒网")}else{
    fmt.Println("他在打鱼")}}