万年历

单片机实训之万年历 单片机实训之万年历(具有时分秒,日期,星期调校功能 什么是万年历???? 年历是中国古代传说中最古老的一部太阳历。万年历是记录一定时间范围内(比如100年或更多)的具体阳历与阴历的日期的年历,方便有需要的人查询使用。万年只是一种象征,表示时间跨度大。所使用的万年历,即包括若干年或适用于若干年的历书 。现代的万年历能同时显示公历、农历和干支历等多套历法,更能包含黄历相关吉凶宜忌、节假日、提醒等多种功能信息,极为方便人们查询使用。 1. 液晶多功能万年历的设计 该项目以AT89C51单片机为核心,结合数字温度调 阅读详情
#include<iostream>
#include<fstream>
#include<iomanip>
#include <Windows.h>
#include "SolarCalendar.h"
#include "ConsoleColor.h"
#include "LunarCalendar.h"
using namespace std;

int everyMonth[]={0,31,28,31,30,31,30,31,31,30,31,30,31};

void PermanentCalendar::Input()
{
	int choose;
	bool flag=true;
	while(flag)
	{
		cout<<endl;
		cout<<white<<"欢迎使用万年历,请选择:"<<endl;
		cout<<endl;
		cout<<white<<" 1:输入年份,显示该年的年历"<<endl;
		cout<<white<<" 2:输入年月,显示该月的日历"<<endl;
		cout<<white<<" 3:输入日期,显示该日星期及农历"<<endl;
		cout<<white<<" 4:退出"<<endl;
		cout<<endl;

		cout<<white<<"输入您的选择: ";
		while(1)
		{

			if(cin>>choose && cin.get()=='\n')
				break;
			else
			{
				cout<<red<<"请不要输入字符型,重新输入:"<<endl;
				cin.clear();
				while(cin.get()!='\n')
					;
			}
		}
		switch(choose)
		{
		case 1:SetYear();break;
		case 2:SetMonth();break;
		case 3:SetDays();break;
		case 4:flag=false;break;
		default:
			{
				system("cls");
				cout<<red<<"输入错误,请重新输入"<<endl;
			}
		}
	}
}

bool PermanentCalendar::IsRight(int year,int month,int day) //判断日期输入是否正确
{
	if(year<1 || year>9999 || month<1 || month>12)//年月是否正确
		return false;
	//日期是否正确
	if(day<0)
		return false;
	else if( day==29)
		return((month==2 && IsLeap(year))|| month!=2);
	else if(day==31)
		return(month==1 ||month==3 ||month==5 ||month==7 ||month==8 || month==10 || month==12);
	else if(day>31)
		return false;
	else
		return true;
} 

void PermanentCalendar::SetDays()
{
	int weekDay;
	int solar_year=0;
	char solar_month=0;
	char solar_day=0;
	cout<<white<<"请输入年 月 日:"<<endl;
	while(1)
	{

		if(cin>>year>>month>>day && cin.get()=='\n')
			break;
		else
		{
			cout<<red<<"输入错误,请重新输入:"<<endl;
			cin.clear();
			while(cin.get()!='\n')
				;
		}
	}
	while(!IsRight(year,month,day))
	{
		cout<<red<<"输入错误,请重新输入年 月 日:"<<endl;

		cin>>year>>month>>day;
	}

	weekDay=GetDays(year, month,day)%7;
	system("cls");
	cout<<yellow<<"阳历:";
	switch(weekDay)
	{
		case 0: cout<<year<<"年"<<month<<"月"<<day<<"日  星期日"<<endl; break;
		case 1: cout<<year<<"年"<<month<<"月"<<day<<"日  星期一"<<endl; break;
		case 2: cout<<year<<"年"<<month<<"月"<<day<<"日  星期二"<<endl; break;
		case 3: cout<<year<<"年"<<month<<"月"<<day<<"日  星期三"<<endl; break;
		case 4: cout<<year<<"年"<<month<<"月"<<day<<"日  星期四"<<endl; break;
		case 5: cout<<year<<"年"<<month<<"月"<<day<<"日  星期五"<<endl; break;
		case 6: cout<<year<<"年"<<month<<"月"<<day<<"日  星期六"<<endl; break;
	}
	cout<<endl;
	solar_lunar(year,month,day);
	if(lunar_day<10)
		cout<<"农历:"<<lunar_year<<"年"<<lunar_month<<"月"<<"初"<<lunar_day<<endl;
	else
		cout<<"农历:"<<lunar_year<<"年"<<lunar_month<<"月"<<lunar_day<<endl;
}

bool PermanentCalendar::IsLeap(int year)//判断是否是闰年
{
	return ((year%4==0 && year!=0 && year%100!=0)||(year%400==0));
}


int PermanentCalendar::GetDays(int year,int month,int day)//得到此日前所有已经过的日子
{
	int yearDays, monthDays=0,sum;
	int accumulate=0;
	for(int i=1;i<year;i++)
		if(IsLeap(i))
			accumulate++;
	yearDays=accumulate+365*(year-1);

	if(IsLeap(year))
		everyMonth[2]=29;//如果是闰年,则2月为29天

	for(int j=1;j<month;j++)
		monthDays+=everyMonth[j];

	sum=yearDays+monthDays+day;//所有已经过的日子之和
	return sum;
}

void PermanentCalendar::SetMonth()//当输入的是年月时,处理
{
	int weekDay;
	day=1;
	cout<<white<<"请输入年 月:"<<endl;
	while(1)
	{

		if(cin>>year>>month && cin.get()=='\n')
			break;
		else
		{
			cout<<red<<"输入错误,请重新输入:"<<endl;
			cin.clear();
			while(cin.get()!='\n')
				;
		}
	}
	while(!IsRight(year,month,day))//判断输入是否正确
	{
		cout<<red<<"输入错误,请重新输入年 月:"<<endl;
		cin>>year>>month;
	} 
	system("cls");    
	weekDay=GetDays(year, month,day)%7;
	Print(year,month);
}

void PermanentCalendar::SetYear()
{
	month=1,day=1;
	cout<<white<<"请输入年:";
	while(1)
	{

	    if(cin>>year && cin.get()=='\n')
			break;
		else
		{
			cout<<red<<"输入错误,请重新输入:"<<endl;
			cin.clear();
			while(cin.get()!='\n')
				;
		}
	}

	while(!IsRight(year,month,day))//判断是否输入正确,若错误,请重新输入
	{
		cout<<red<<"输入错误,请重新输入年:"<<endl;
		cin>>year;
	}
	system("cls");
	cout<<endl;
	cout<<blue<<"        万年历打印在Calendar文档中,请查看。"<<endl;
	Output(year);

	for(int k=1;k<=12;k++)//将12个月的万年历在界面上输出
		Print(year,k);
}   

void PermanentCalendar:: Print(int year,int month)//打印到界面上
{
	
	int weekday;
	day=1;
	cout<<yellow<<"                 公元"<<year<<"年"<<month<<"月"<<endl;
	cout<<endl;
	cout<<"     SUN   MON   TUE   WES   THU   FRI   SAT"<<endl;
	weekday=GetDays(year, month,day)%7;//所有的日期之和取余
	switch(weekday)//输出处理
	{
	case 0: cout<<"     "<<setw(6)<<setiosflags(ios::left)<<"1"; break;
	case 1: cout<<"           "<<setw(6)<<setiosflags(ios::left)<<"1";break;
	case 2: cout<<"                 "<<setw(6)<<setiosflags(ios::left)<<"1";break;
	case 3: cout<<"                       "<<setw(6)<<setiosflags(ios::left)<<"1";break;
	case 4: cout<<"                             "<<setw(6)<<setiosflags(ios::left)<<"1";break;
	case 5: cout<<"                                   "<<setw(6)<<setiosflags(ios::left)<<"1";break;
	case 6: cout<<"                                         "<<setw(6)<<setiosflags(ios::left)<<"1";break;
	}
	
	for(int i=2;i<=everyMonth[month];i++)
	{
		weekday=(++weekday)%7;
		if(!weekday)
		{
			cout<<endl; 
			cout<<"     "<<setw(6)<<setiosflags(ios::left)<<i;
		}
		else   
			cout<<setw(6)<<setiosflags(ios::left)<<i;
	}
	cout<<endl;
	cout<<endl;
	//SetColor(40,0);
} 

void PermanentCalendar::Output(int year)//打印到文本框内
{
	int weekday;
	int i,j;
	month=1;
	day=1;
	ofstream outfile("Calendar.txt",ios::out);
	for(i=1;i<=12;i++)
	{
		outfile<<"                 公元"<<year<<"年"<<i<<"月"<<endl;
		outfile<<"     SUN   MON   TUE   WES   THU   FRI   SAT"<<endl;
		weekday=GetDays(year, i,day)%7;
		switch(weekday)
		{
		case 0: outfile<<"     "<<setw(6)<<setiosflags(ios::left)<<"1"; break;
		case 1: outfile<<"           "<<setw(6)<<setiosflags(ios::left)<<"1";break;
		case 2: outfile<<"                 "<<setw(6)<<setiosflags(ios::left)<<"1";break;
		case 3: outfile<<"                       "<<setw(6)<<setiosflags(ios::left)<<"1";break;
		case 4: outfile<<"                             "<<setw(6)<<setiosflags(ios::left)<<"1";break;
		case 5: outfile<<"                                   "<<setw(6)<<setiosflags(ios::left)<<"1";break;
		case 6: outfile<<"                                         "<<setw(6)<<setiosflags(ios::left)<<"1";break;
		}
		for( j=2;j<=everyMonth[i];j++)
		{
			weekday=(++weekday)%7;
			if(!weekday)
			{
				outfile<<endl; outfile<<"     "<<setw(6)<<setiosflags(ios::left)<<j;
			}
			else
				outfile<<setw(6)<<setiosflags(ios::left)<<j;
		}

		outfile<<endl;
		outfile<<endl;

	}
	cout<<endl;
	outfile.close();
} 


int main()
{
	PermanentCalendar pc;
	pc.Input();
	return 0;
}



#ifndef __SOLARCALENDAR__
#define __SOLARCALENDAR__

class PermanentCalendar
{	
public:
	void Input();
	void SetMonth();
	void SetDays();
	void SetYear();
	bool IsLeap(int year);
	bool IsRight(int year,int month,int day);
	int GetDays(int year,int month,int day);
	void Print(int year,int month);
	void Output(int year);

private:
	int year;
	int month;
	int day;

};

#endif



#ifndef __LUNARCALENDAAR__
#define __LUNARCALENDAAR__
#include <stdio.h>
#include <conio.h>
int year=0,lunar_year=0;
int month=0,lunar_month=0;
int day=0,lunar_day=0;
/*1900-2050年的农历数据
数据格式说明
5位十六进制数字 例:04bd8
1 位: 1表示闰月30天,0表示29天
2、3、4位: 转换二进制为:0100 1011 1101(1为30天,0为29天)
04bd8表示为(13个月):29,30,29,29,30,29,30,30,30(闰8月),30,30,29,30;
5 位: 如果有闰月,则为月份,没有则为0*/
long int lunar_info[]=
{   
	0x04bd8,0x04ae0,0x0a570,0x054d5,0x0d260,0x0d950,0x16554,0x056a0,0x09ad0,0x055d2,   
	0x04ae0,0x0a5b6,0x0a4d0,0x0d250,0x1d255,0x0b540,0x0d6a0,0x0ada2,0x095b0,0x14977,   
	0x04970,0x0a4b0,0x0b4b5,0x06a50,0x06d40,0x1ab54,0x02b60,0x09570,0x052f2,0x04970,   
	0x06566,0x0d4a0,0x0ea50,0x06e95,0x05ad0,0x02b60,0x186e3,0x092e0,0x1c8d7,0x0c950,   
	0x0d4a0,0x1d8a6,0x0b550,0x056a0,0x1a5b4,0x025d0,0x092d0,0x0d2b2,0x0a950,0x0b557,   
	0x06ca0,0x0b550,0x15355,0x04da0,0x0a5b0,0x14573,0x052b0,0x0a9a8,0x0e950,0x06aa0,   
	0x0aea6,0x0ab50,0x04b60,0x0aae4,0x0a570,0x05260,0x0f263,0x0d950,0x05b57,0x056a0,   
	0x096d0,0x04dd5,0x04ad0,0x0a4d0,0x0d4d4,0x0d250,0x0d558,0x0b540,0x0b6a0,0x195a6,   
	0x095b0,0x049b0,0x0a974,0x0a4b0,0x0b27a,0x06a50,0x06d40,0x0af46,0x0ab60,0x09570,   
	0x04af5,0x04970,0x064b0,0x074a3,0x0ea50,0x06b58,0x055c0,0x0ab60,0x096d5,0x092e0,   
	0x0c960,0x0d954,0x0d4a0,0x0da50,0x07552,0x056a0,0x0abb7,0x025d0,0x092d0,0x0cab5,   
	0x0a950,0x0b4a0,0x0baa4,0x0ad50,0x055d9,0x04ba0,0x0a5b0,0x15176,0x052b0,0x0a930,   
	0x07954,0x06aa0,0x0ad50,0x05b52,0x04b60,0x0a6e6,0x0a4e0,0x0d260,0x0ea65,0x0d530,   
	0x05aa0,0x076a3,0x096d0,0x04bd7,0x04ad0,0x0a4d0,0x1d0b6,0x0d250,0x0d520,0x0dd45,   
	0x0b5a0,0x056d0,0x055b2,0x049b0,0x0a577,0x0a4b0,0x0aa50,0x1b255,0x06d20,0x0ada0,   
	0x14b63   
};   

int get_leap_month(int lunar_year)
{
	return lunar_info[lunar_year-1900]&0xf;
}

int get_leap_month_day( int lunar_year)
{
	if(get_leap_month(lunar_year))
		return( ( (lunar_info[lunar_year-1900]) & 0x10000 ) ? 30:29 );
	else
		return(0);
}

int get_lunar_month_total( int lunar_year,  int lunar_month)
{   
	return( (lunar_info[lunar_year-1900] & (0x10000>>lunar_month) ) ? 30:29 );
}

int get_lunar_year_total( int lunar_year)
{

	 int sum=348;
	 int i;
	for(i=0x8000;i>0x8; i>>=1)
		sum+=(lunar_info[lunar_year-1900]&i)?1:0;
	return(sum+get_leap_month_day(lunar_year));
}

int leap(  int year)
{
	if( (year%4==0 &&year%100!=0) || year%400==0 )
		return 366;
	else
		return 365;
}
int Day(  int year ,  int month)
{
	if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
		return 31;
	if(month==4||month==6||month==9||month==11)
		return 30;
	if(month==2&&leap(year)==366)
		return 29;
	else
		return 28;
}

int get_solar_total(  int year,   int month)
{
	  int total;
	  int temp_num;
	total=0;
	for(temp_num=1900;temp_num<year;temp_num++)
		total+=leap(temp_num);
	for(temp_num=1;temp_num<month;temp_num++)
		total+=Day(year,temp_num);
	return total;
}

int solar_lunar(  int kp_year,  int kp_month,  int kp_day)
{
	  int total_day=0;
	  int run_yue_flag=0,run_yue=0,year_flag=0;

	if(kp_year<1900 || kp_year>2050 || kp_month>12 || kp_month==0 || (kp_year==1900 && kp_month==1) )
		return 0;
	if(kp_day>Day(kp_year,kp_month) || kp_day==0)
		return 0;

	total_day=get_solar_total( kp_year, kp_month)+kp_day-30;
	lunar_year=1900;
	while(total_day>385)
	{   
		total_day-=get_lunar_year_total(lunar_year);
		lunar_year++;
	}   
	if(total_day>get_lunar_year_total(lunar_year))
	{
		total_day-=get_lunar_year_total(lunar_year);
		lunar_year++;

	}
	run_yue=get_leap_month(lunar_year);
	if(run_yue)
		run_yue_flag=1;
	else
		run_yue_flag=0;

	if(total_day==0)
	{
		lunar_day=get_lunar_month_total(lunar_year,12);
		lunar_month=12;
	}
	else
	{
		lunar_month=1;
		while(lunar_month<=12)
		{
			if( run_yue_flag==1 && lunar_month==(run_yue+1) )
			{
				if(total_day>get_leap_month_day(lunar_year))
				{
					total_day-=get_leap_month_day(lunar_year);
				}

				run_yue_flag=0;
				continue;
			}
			if( total_day> get_lunar_month_total(lunar_year,lunar_month ) )
			{
				total_day=total_day-get_lunar_month_total(lunar_year,lunar_month);
				lunar_month++;
			}
			else
			{
				lunar_day=total_day;
				break;
			}   
		}
	}
	return 0;
}
#endif



#ifndef __CONSOLECOLOR__
#define __CONSOLECOLOR__
#include <windows.h>
#include <iostream>
using namespace std;

inline ostream& red(ostream &s)
{
	HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE); //获取标准输出句柄
	SetConsoleTextAttribute(hStdout,FOREGROUND_RED|FOREGROUND_INTENSITY);//设置文本颜色
	return s;
}

inline ostream& yellow(ostream &s)
{
	HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE); 
	SetConsoleTextAttribute(hStdout, 
		FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_INTENSITY);
	return s;
}

inline ostream& white(ostream &s)
{
	HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE); 
	SetConsoleTextAttribute(hStdout, 
		FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);//R,G,B混合就为白色
	return s;
}
inline ostream& blue(ostream &s)
{
	HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE); 
	SetConsoleTextAttribute(hStdout, FOREGROUND_BLUE
		|FOREGROUND_GREEN|FOREGROUND_INTENSITY);
	return s;
}

#endif





如何在51单片机实现电子万年历 51单片机制作万年历的基本功能部分,软件特性可以在proteus上仿真,使用51单片机定时器T0做万年历计时信号源,电子万年历计时系统在timer模块,本模块主要是将年/月/日/星期/时/分/秒等信息输出到lcd1602上显示,以及将年月日换算为星期信息。单片机采用12MHz晶振,中断1ms计时方式,误差低。 阅读详情

相关推荐

Python万年历(含农历、节气等)

前已实现计算农历的基本功能(利用PyEphem库进行任意日期的公历转换农历),本篇利用这些功能完成UI小程序。 以下为显示月历的核心程序(UI以PyQt5为例) def getSolorTerms(year): jqb = [[i] for i in range(12)] # [月序,[日序, 节气序] * n] for i in range(26): if i < 2: jq = JD2date(SolarTerms(year-1, 255 + i * 15), 8) el.

weixin_42763614的博客 1万+

一个C++的万年历类

<!-- google_ad_client = "pub-2416224910262877";google_ad_width = 728;google_ad_height = 90;google_ad_format = "728x90_as";google_ad_channel = "";google_color_border = "E1771E";google

派的无理性 2621

python制作万年历

最近进行python基础培训,课下作业制作万年历,之前没做过,感觉里面还是有很多需要学的。所谓万年历,就是咱们电脑或者手机的日期会记录每个月每天对应星期几。用python来制作万年历,就是从键盘输入年份和月份,然后输出对应的日历表。在制作过程中有如下问题需要思考: 万年历的起始时间,也就是从哪一天算起? 平年和闰年的天数不一样,同时,每个月的天数不一样,如何对输入日期距离起始日期的天数求和...

weixin_44460780的博客 7869

日历的代码修改---solar calendard

日历表软件功能规格 1、 屏幕显示区域为128*160; 2、 屏幕显示区域包括年、月,日、星期; 3、 使用四个方向键(上、下、左、右)、*键、#键和返回键,上键表示向上移动,下键表示向下移动,左键表示向左移动,右键表示向右移动,*键表示显示前一个月份的日历,#键表示显示后一个月份的日历,返回键表示退出。 4、 显示完整的单个月份的日历表。 5、 日历只为阳历,

灯塔的优快云博客 2051

Java万年历

"************************万年历************************""************************万年历************************""************************万年历************************"//闰年:普通闰年(能被4整除,但不能被100整除)、世纪闰年(能被400整除)//闰年:普通闰年(能被4整除,但不能被100整除)、世纪闰年(能被400整除)

s_263783的博客 1150

用c++编写万年历。

800x600 Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE

ledaosi的专栏 8276

【亲测免费】 常见问题解决方案:LunarCalendar 开源项目

LunarCalendar 是一个用 Java 编写的开源日历库,主要用于处理和转换农历(阴历)日期。该库易于使用,性能高,可以帮助开发者快速地在应用程序中实现农历日期的显示和计算。该项目的主要编程语言是 Java。 ## 主要编程语言 - Java ## 新手常见问题与解决方案 ### 问题1:如何引入 LunarCalendar 库到项目中? **解决方案:** 1. 使用 Gra...

gitblog_00742的博客 967

c语言 编写 简单万年历

初学C语言,许多人 往往不能灵活的运用自己所学的知识 。就拿今天这个万年历来说,当时我们C语言老师布置这个作业时,我简直一脸蒙蔽。回头交作业时 ,就洋洋洒洒写了12个并列的for循环糊弄一下自己,不知道老师看了之后会不会回想起当年语文老师口头常讲的排比句。幸好现在抓住大学的小尾巴,完成了这份作 业。 #include&lt;stdio.h&gt; #include&lt;stdlib.h&g...

Mr_IOT的博客 2246

LunarCalendarUtil

package com.css.common.util; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.Locale; /**  * 农历的一些方法  *

涂作权的博客 1846

FPGA万年历实验项目与实践指南

现场可编程门阵列(FPGA)是一种通过编程来配置的半导体设备,它允许用户在不更换硬件的情况下自定义逻辑功能。与传统的专用集成电路(ASIC)相比,FPGA提供了更高的灵活性,并且能够在产品设计的早期阶段快速实现原型设计。万年历是一种能够显示日期、星期、月份以及年份,并能够准确计算与显示闰年信息的日历系统。它的组成涉及到历法中的时间计算规则,包括天文学、数学和计算机算法等方面的知识。万年历的基本组成部分通常包括:日期显示:用于显示当前的年、月、日以及星期。

weixin_42466857的博客 839

创建交互式JavaScript万年历控件:全面指南与实践

在构建Web应用时,选择合适的JavaScript库或框架是至关重要的一步。库和框架都是为了提高开发效率和代码复用,但它们的工作方式不同。JavaScript库如jQuery、Zepto等提供了一系列预先编写的函数,帮助开发者处理常见的任务,如DOM操作、事件处理、动画等,它更像是工具箱,开发者从中选取合适的工具来解决问题。而框架如React、Vue、Angular等则提供了一套完整的开发模式和架构,开发者需要按照框架的规则来进行项目开发,框架不仅提供了工具,还有明确的代码组织方式和数据流向。

weixin_42590539的博客 1133

改进java万年历,前几天看到别人写的java万年历

改进java万年历,前几天看到别人写的java万年历,其中不足之处多多      昨天网上看到别人blog里面写的自己做的万年历不错,down下来看看,发现有些地方不妥。     1。在java中获取指定年月的天数居然还用闰年来判断,感觉这个人java肯定用的不精。Calendar类里面有个方法      isLeapYear(int year)          确定给定的年份是否为

2793

LunarCalendar:一个由 JS 万年历移植而来的,兼容 iOS Android 的 cpp 日历模块

LunarCalendar 一个由 JS 万年历移植而来的,兼容 iOS / Android 的 cpp 农历模块,量程为 1900~2100 。 对于 iOS,还提供一个用 JSCore 直接调用 Calendar.js 的版本 功能 支持 农历 转 公历 支持 公历 转 农历 支持 天干、地支 数据 支持 24 节气 支持 农历日期的中文显示 使用 C++ lunar = new Lunar(); LunarObj* obj = lunar->solar2lunar(2015, 3, 4); obj >>> lunarYear: 2015, lunarMonth: 1, lunarDay: 14, Animal: "羊" lunarMonthChineseName: "正月" lunarDayChineseName: "十四" solarDay: 4 solarMonth: 3

百度万年历接口实现和分析

百度万年历接口实现和分析 接口目的 项目中需要判断某个日期是否是节假日,以此对应不同的业务处理和设置。查看了下百度搜索的结果,最终最中意的还是它自带的万年历组件。 其中数据查询的url 是 http://opendata.baidu.com/api.php?query=YEAR_MONTH&resource_id=6018&format=json 封装方法 解析数据 服务: pri...

GuDuPanNiZhe的博客 1万+

微信DAT图片解密全攻略:一键转换JPG/PNG/GIF

本文详细解析了微信电脑版中DAT图片的加密原理与存储路径,并提供了从定位文件到使用专业工具进行一键解密的完整操作指南。通过简单的步骤,用户可将加密的DAT文件无损还原为JPG、PNG或GIF格式,有效解决无法直接查看聊天图片的难题,同时兼顾了隐私清理与磁盘空间管理。

hill8的博客 1363

Ubuntu桌面消失?可能是lightdm配置在捣鬼:详细解析/etc/lightdm.conf的优先级机制与实战修复

本文详细解析了Ubuntu系统因lightdm显示管理器配置错误导致桌面消失的问题。通过分析/etc/lightdm.conf的优先级加载机制,提供了从systemctl诊断、调试模式运行到实战修复配置语法错误(如缺失[Seat:*]组)的完整方案。文章还探讨了在系统无法启动时使用chroot或恢复模式进行高级救援,并对比了lightdm与gdm3在NVIDIA驱动环境下的不同表现,帮助用户高效恢复图形界面。

weixin_29313547的博客 420

万年历python程序用到的算法,java万年历实验原理

例如,如果上限不超过BC1100年,则无需考虑岁差和不同历法对回归年的取值问题,导致冬至计算结果在次年的情况(此后冬至固定在12月)。如果下限也不远,则无需考虑地球自转变慢和近点进动,计算节气利用太阳在近日点和远日点不同的运动特点,平气法寻找较好的值(如31)可以保证定气不会超过平气计算结果从而仅需比较一次即可获得真实节气。大家好,本文将围绕万年历python程序用到的算法展开说明,java万年历实验原理是一个很多人都想弄明白的事情,想搞清楚用python做万年历需要先了解以下几个事情。

yang0728y的博客 1165

Proxmox VE网络配置踩坑实录:从Web界面无法访问到完美修复的全过程

本文详细记录了Proxmox VE服务器Web界面无法访问的完整排查与修复过程。作者从基础网络连通性测试入手,逐步排查了服务状态、SSL证书、端口监听、防火墙规则及网关配置,最终定位并解决了问题。文章提供了系统性的故障排查思路和实用的修复命令,对管理Proxmox VE网络具有重要参考价值。

weixin_29231221的博客 889

java写万年历_Java 实现万年历总结

一,Java实现万年历的代码:package calendar;import java.util.Scanner;//日历项目public class RiLi{public static void main(String[] args){Scanner A=new Scanner(System.in);System.out.println("请输入年份:");int year=A.nextInt...

weixin_36343353的博客 2652

基于Simulink的二相混合式步进电机驱动器快速建模与仿真实践

本文详细介绍了如何利用Simulink对二相混合式步进电机驱动器进行快速建模与仿真。通过从零搭建电机数学模型、设计H桥控制逻辑,并集成步进时序,手把手指导读者创建可运行的仿真模型文件。该方法能有效验证控制策略,避免硬件调试风险,是学习与实践电机驱动开发的理想途径。

weixin_29171087的博客 147

OpenRadar Matlab版:毫米波雷达信号处理全流程开源库详解

毫米波雷达数据解析与信号处理是感知领域的基础能力。本文介绍毫米波雷达从ADC原始采样到距离-多普勒(Range-Doppler)热图、CFAR检测、DOA估计直至点云与生命体征参数提取的完整处理链路,并深入讲解OpenRadar(Matlab版)开源库的内核设计、核心API与实测经验。从原理上看,距离FFT与多普勒FFT构成RD谱,CFAR自适应阈值实现目标检测,相位解缠与滤波用于呼吸心跳提取。技术价值在于将繁琐的雷达数据读取、矩阵变换和算法流程标准化,免去重复造轮子。可应用于人员存在感知、生命体征监护、4

weixin_33806859的博客 321

python实现简易万年历_Python编程——万年历

2017年五月份日历万年历这个题目几乎是不论学哪种编程语言必要尝试的一个小知识,综合了循环,逻辑关系判断等各编程语言的基础知识。今天我们一起用Python实现简单的万年历功能(查看某年各个月份日历和查看确定月份日历)。网上大概浏览了一部分代码,发现实现方法都是大同小异,本篇文章代码可能会略有不同,可供参考。记得之前在学C语言的时候就去写过万年历,现在已经忘得一干二净了,用Python实现万年历主要...

weixin_39916511的博客 4340

092、多sensor帧同步在环视系统中的实现——基于瑞芯微RK3588的PPS同步与曝光同步方案

摘要: 本文探讨了瑞芯微RK3588平台在360环视系统中实现多摄像头帧同步的技术方案。针对环视拼接常见的动态场景错位问题,提出了PPS同步与曝光同步相结合的解决方案。通过GPIO硬件触发实现四路摄像头同步曝光,配合I2C全局曝光控制,将时间误差控制在0.5ms内。文章详细解析了RK3588设备树配置、内核驱动实现中的关键细节,包括同步信号处理、寄存器原子写入等核心技术点,并分享了量产中遇到的温度漂移、信号完整性等实际问题及解决方法。最终通过硬件整形和电源优化,将同步抖动控制在±5μs以内,有效解决了动态拼

zzfmlxs的博客 33

(万年历三)利用js在html页面打印万年历

简述 之前写过在java中纯算法控制台打印万年历: (万年历一)JAVA在控制台输出万年历(1900年起) 利用java中的calender对象在控制台打印万年历: (万年历二)JAVA在控制台输出万年历(Calendar版) 这次咱们与前面的原理一样,利用js中的Date对象计算日历,在用dom操作在页面中渲染出来。 效果 在输入框中按格式出入日期,提交后便可在页面中显示日历: 思路 思路与前一版使用java的calender对象类似,利用Js的Date对象获得指定日期月份的总天数,月份第一天为星期几,

个人网站:https://www.longzipeng.online 2488

贝叶斯时空模型-INLA-4

该文章中,会简化数学计算的过程,主要是针对,在有数据的基础上,如何应用贝叶斯时空模型,找出影响因素,绘制时间变化的空间分布预测图。上述中关键一步与前几期介绍的不一样的地方是,我们加入了n.group参数,用来指定年份,先看一下Year有多少年的,然后封装在s.index里面。在前述的内容中,我们介绍了,如何处理空间的数据,利用海拔高度预测降雨量的例子。建立好数据及mesh以后,我们现在写INLA公式,如果不考虑残差项,那就是固定效应,现在我们增加残差项,及空间与时间效应。这里的Mesh设定值为10,20。

学习中 2948

基于 Qt C++ 的战术通信终端

logMessage(QString("新客户端连接来自: %1:%2").arg(incomingTcpSocket->peerAddress().toString()).arg(incomingTcpSocket->peerPort()));logMessage(QString("服务器已启动,在 [%1]:%2 监听IPv6连接...").arg(ui->lineEditAddress->text()).arg(port));

寒寒豆豆软件公司的博客 77
上一篇: 回文判断
下一篇: 文件读取输出学习
ktaurus
博客等级 码龄15年 1粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值