C语言实现简单万年历

本文实例为大家分享了C语言实现简单万年历的具体代码,供大家参考,具体内容如下

#include <stdio.h>
#include<stdlib.h>
int year, month;
int run[12] = { 31,29,31,30,31,30,31,31,30,31,30,31 };
int ping[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
char week[7][10] = { "SUN","MON","TUE","WED","THU","FRI","SAT" };

bool IsLeap(int year)
{
 if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) //判断闰年
 {
 return true;
 }
 else
 {
 return false;
 }
}
void PrintStar()
{
 printf("\t\t\t万年历\t\t\t\n");
 printf("****************************************************\n");
 for (int i = 0; i < 7; i++)
 {
 printf("%s\t", week[i]);
 }
 printf("\n");
}
int DaySum(int year, int month)
{
 int sum = 0;
 for (int i = 1990; i < year; i++)
 {
 if (IsLeap(i))
 {
  sum += 366;
 }
 else
 {
  sum += 365;
 }
 }
 for (int i = 0; i < month - 1; i++)
 {
 if (IsLeap(year))
 {
  sum += run[i];
 }
 else
 {
  sum += ping[i];
 }
 }
 return sum;
}

void PrintCal(int sum, int year, int month)
{
 int nRes, nTmp;
 nRes = sum % 7+1;//前面空几格
 nTmp = 7 - nRes;//从第几格开始打印
 for (int i = 0; i < nRes; i++)
 {
 printf("\t");
 }
 if (IsLeap(year))
 {
 for (int i = 1; i < run[month - 1]+1; i++)
 {
  printf("%d\t", i);
  if (nTmp == i || (i - nTmp) % 7 == 0)
  {
  printf("\n");
  }
 }
 printf("\n");
 }
 else
 {
 for (int i = 1; i < ping[month - 1]+1; i++)
 {
  printf("%d\t", i);
  if (nTmp == i || (i - nTmp) % 7 == 0)
  {
  printf("\n");
  }
 }
 printf("\n");
 }

}
int main(void)
{
 while (1)
 {
 scanf_s("%d %d", &year, &month);
 PrintStar();
 PrintCal(DaySum(year, month), year, month);
 printf("****************************************************\n");
 }

 return 0;

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C语言实现万年历效果

    本文实例为大家分享了C语言实现万年历的具体代码,供大家参考,具体内容如下 #include <stdio.h> #include <stdlib.h> #include <string.h> #define str " SUN MON TUE WED THU FRI SAT " void menu(); //操作菜单 int leap(int year); //判断某年是不是闰年 int days_month(int year, int month)

  • C语言实现万年历

    C语言实现的万年历显示,按下上下左右按键来更换日期和年份,供大家参考,具体内容如下 #include <stdio.h> #include <stdlib.h> #include <time.h> #include<conio.h> typedef struct today { int day; int month; int year; } today; int day_cankao[2][13]={ {0,31,28,31,30,31,30,31,31,3

  • C语言实现万年历小程序

    一.杂谈 大一学了C之后一直困惑,C到底怎么用?它不像HTML那么直观,也没有SQL那么常用,更没有Java那么功能强大,那他为何还存在,并依然火热呢? 答案很简单:编程语言是一家,C语言结构简单,但所蕴含的逻辑思维和其他语言大致相同,适合初学者. 编程不是一蹴而就,能力需要日积月累,推荐想我一样的初学者,大家自己动手玩玩简单的C程序! 二.万年历 像这样一个简单的全年日历,仔细观察不难发现由每个月的日历组成,每个月有最多6行,占6周,每周7天: 程序如下: 设定日历大小: int date[1

  • C语言实现的一个万年历小程序

    该程序简单地输入一个年份(1901年之后的年份),随后程序输出该年份十二个月的日历. #include<stdio.h> #define Mon 1 #define Tues 2 #define Wed 3 #define Thur 4 #define Fri 5 #define Sat 6 #define Sun 0 #define January_days 31 #define February_days 28 #define March_days 31 #define April_day

  • C语言实现万年历源码

    本文实例为大家分享了C语言实现万年历的具体代码,供大家参考,具体内容如下 主函数所在源码 #include <stdio.h> #include <stdlib.h> #include <string.h> int GetWeek(int year,int month,int day);//求今天是周几.周四就返回 4 .周日 返回 0:非法返回 -1: int GetDaysInMonth(int year,int month);/*求指定月总共多少天*/ int C

  • C语言实现万年历程序

    本文实例为大家分享了C语言实现万年历程序,供大家参考,具体内容如下 #include <stdio.h> int year(int y) { if ((y%4==0) && (y%100!=0) || y%400==0) return 366; else return 365; } int main() { int y; int i,j,sum=0; int begin,week; int days[12]={31,28,31,30,31,30,31,31,30,31,30,3

  • C语言实现简单万年历

    本文实例为大家分享了C语言实现简单万年历的具体代码,供大家参考,具体内容如下 #include <stdio.h> #include<stdlib.h> int year, month; int run[12] = { 31,29,31,30,31,30,31,31,30,31,30,31 }; int ping[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 }; char week[7][10] = { "SUN",&

  • GO语言实现简单TCP服务的方法

    本文实例讲述了GO语言实现简单TCP服务的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package main import ( "net" "fmt" ) var (   maxRead = 1100     msgStop   = []byte("cmdStop")     msgStart  = []byte("cmdContinue")     ) func main() {       ho

  • Java语言实现简单FTP软件 FTP软件主界面(4)

    首先看一下FTP软件的整体代码框架,具体内容如下 1.首先介绍程序的主入口FTPMain.java,采用了一个漂亮的外观风格 package com.oyp.ftp; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.UIManager; import com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel; public class F

  • go语言实现简单http服务的方法

    本文实例讲述了go语言实现简单http服务的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package main import (     "flag"     "log"     "net/http"     "text/template" ) var addr = flag.String("addr", ":1718", "http service

  • GO语言实现简单的目录复制功能

    本文实例讲述了GO语言实现简单的目录复制功能.分享给大家供大家参考.具体实现方法如下: 创建一个独立的 goroutine 遍历文件,主进程负责写入数据.程序会复制空目录,也可以设置只复制以 ".xx" 结尾的文件. 严格来说这不是复制文件,而是写入新文件.因为这个程序是创建新文件,然后写入复制数据的.我们一般的 copy 命令是不会修改文件的 ctime(change time) 状态的. 代码如下: 复制代码 代码如下: // 一个简单的目录复制程序:一个独立的 goroutine

  • Go语言实现简单Web服务器的方法

    本文实例讲述了Go语言实现简单Web服务器的方法.分享给大家供大家参考.具体分析如下: 包 http 通过任何实现了 http.Handler 的值来响应 HTTP 请求: package http type Handler interface { ServeHTTP(w ResponseWriter, r *Request) } 在这个例子中,类型 Hello 实现了 http.Handler. 注意: 这个例子无法在基于 web 的指南用户界面运行.为了尝试编写 web 服务器,可能需要安装

  • Go语言实现简单留言板的方法

    本文实例讲述了Go语言实现简单留言板的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package main import (     // "fmt"     "io"     "log"     "net/http"     "text/template"     "time"     "database/sql"     "gi

  • 基于C语言实现简单的走迷宫游戏

    本文实例讲述了C语言实现简单的走迷宫游戏的方法,代码完整,便于读者理解. 学数据结构时用"栈"写的一个走迷宫程序,实际上用到双向队列,方便在运行完毕后输出经过的点. #include <cstdio> #include <deque> #include <windows.h> using namespace std; class node { public: int x,y; int lastOpt; }; deque<node> sta

  • JAVA实现的简单万年历代码

    本文实例讲述了JAVA实现的简单万年历.分享给大家供大家参考,具体如下: import java.util.Scanner; public class PrintCalendar { public static void main(String[] args) { int years = 0; int month = 0; int days = 0; boolean isRun = false; //從控制台輸入年,月 Scanner input = new Scanner(System.in)

  • Java语言实现简单FTP软件 FTP上传下载管理模块实现(11)

    本文为大家分享了FTP上传下载管理模块的实现方法,供大家参考,具体内容如下 1.上传本地文件或文件夹到远程FTP服务器端的功能. 当用户在本地文件列表中选择想要上传的文件后,点击上传按钮,将本机上指定的文件上传到FTP服务器当前展现的目录,下图为上传子模块流程图 选择好要上传的文件或文件夹,点击"上传"按钮,会触发com.oyp.ftp.panel.local.UploadAction类的actionPerformed(ActionEvent e)方法,其主要代码如下 /** * 上传

随机推荐