c语言和golang实现万年历

编程入门 行业动态 更新时间:2024-10-17 02:55:09

c语言和golang实现<a href=https://www.elefans.com/category/jswz/34/1766894.html style=万年历"/>

c语言和golang实现万年历

思路:year:=2021,month:=9
求出2021年8月31日,距离1900年1月1日的总天数,除以7取余数,就是空格的数量
万年历是连着的,一行有七个,所以7的余数就是当月一号所在的列数 -1 ,所在列数就是(余数 +1)
c++

#include <iostream>
using namespace std;int main()
{int year = 0;int month = 0;int sum = 0; //总天数cout << "请输入年份:" ;cin >> year;cout << "请输入月份:";cin >> month;//求出从1999到year的总天数for (int i = 1900; i < year; i++) {if (i%4 == 0&& i%100 != 0 || i%400 == 0){sum += 366;}else{sum += 365;}}// 求year年1月到(month-1)月的总天数int day = 0;//month月的天数for (int i = 1;i <= month;i++){if(i == 1||i == 3||i == 5||i == 7||i == 8||i == 10||i == 12){day = 31;sum += 31;}else if(i == 4||i == 6||i == 9||i == 11){day = 30;sum += 30;}else {if(year %4==0&&year % 100!=0||year % 400 ==0){day = 29;sum += 29;}else{day = 28;sum += 28;}}//由于上述循环把本月的天数也加了,所以需要减去if(i == month)sum -= day;}cout <<"sum :" << sum << endl;int space = sum % 7;cout <<"space :" << space << endl;cout << "一\t二\t三\t四\t五\t六\t日"<<endl;//打印空格for (int i = 0; i < space;i++){cout << "\t";}//打印数字for (int i=1;i<=day;i++){cout << i <<"\t";//换行if ((i+space) % 7 ==0){cout << endl;}}cout << endl;
}

golang

package main
import ("fmt" 
)
func test1(){//1.给定年份和月份,可以键盘输入:var year intfmt.Print("请输入年份:")fmt.Scanf("%d",&year)var month intfmt.Print("请输入月份:")fmt.Scanf("%d",&month)//2.求出2018年7月31日到1900年1月1日的总天数sum := 0 //总天数//2.1先累加整年的天数for i := 1900; i < year; i++ {if i%4 == 0&& i%100 != 0 || i%400 == 0{sum += 366}else{sum += 365}}//2.2求2018年1月到7月的总天数day := 0 //每个月的天数for i := 1;i <= month;i++{switch i {case 1,3,5,7,8,10,12:{day = 31sum += 31}case 4,6,9,11:{day = 30sum += 30}case 2:if i%4 == 0&& i%100 != 0 || i%400 == 0{day = 29sum += 29}else{day = 28sum += 28}}if i == month{sum -= day}}fmt.Println(sum);//3.计算空格的数量space := sum % 7//打印fmt.Println("一\t二\t三\t四\t五\t六\t日")//打印空格for i:=0;i<space;i++{fmt.Print("\t")}//打印数字for i:=1;i<=day;i++{fmt.Print(i,"\t")//换行if (i+space) % 7 ==0{fmt.Println()}}fmt.Println()
}func main()  {test1()}

更多推荐

c语言和golang实现万年历

本文发布于:2024-03-14 23:52:22,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1737638.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:万年历   语言   golang

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!